]>
Commit | Line | Data |
---|---|---|
f13d199c RB |
1 | 2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
2 | ||
3 | PR driver/33772 | |
4 | * collect2.c (SHLIB_SUFFIX): Define if not defined. | |
5 | (write_c_file_stat): Use SHLIB_SUFFIX. | |
6 | * som.h (SHLIB_SUFFIX): Define. | |
7 | * doc/tm.texi (SHLIB_SUFFIX): Document. | |
8 | ||
9 | 2007-12-29 Uros Bizjak <ubizjak@gmail.com> | |
10 | ||
11 | * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3". | |
12 | ("*sse_rsqrtv4sf2"): Export. | |
13 | ("*sse_sqrtv4sf2"): Ditto. | |
14 | * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR, | |
15 | IX86_BUILTIN_SQRTPS_NR]: New constants. | |
16 | (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use | |
17 | CODE_FOR_sse_divv4sf3. | |
18 | [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2. | |
19 | [IX86_BUILTIN_SQRTPS_NR]: New. | |
20 | [IX86_BUILTIN_RSQRTPS_NR]: Ditto. | |
21 | (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and | |
22 | __builtin_ia32_sqrtps_nr. | |
23 | (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to | |
24 | IX86_BUILTIN_SQRTPS_NR. | |
25 | (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to | |
26 | IX86_BUILTIN_RSQRTPS_NR. | |
27 | ||
28 | 2007-12-27 Brian Dessent <brian@dessent.net> | |
29 | ||
30 | * doc/invoke.texi (Optimize Options): Add missing opindex for | |
31 | -fno-toplevel-reorder. | |
32 | ||
33 | 2007-12-27 Dorit Nuzman <dorit@il.ibm.com> | |
34 | ||
35 | PR tree-optimization/34591 | |
36 | * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip | |
37 | stmts (including reduction stmts) that are not live. | |
38 | ||
39 | 2007-12-27 Jakub Jelinek <jakub@redhat.com> | |
40 | ||
41 | PR target/34281 | |
42 | * config/arm/arm.c (arm_setup_incoming_varargs): If last named | |
43 | argument needs double word alignment and cum->nregs is odd, account | |
44 | for the inserted padding. | |
45 | ||
46 | PR debug/34535 | |
47 | * tree-mudflap.c (mf_make_builtin): Make decl artificial | |
48 | and don't emit debug info for it. | |
49 | ||
50 | 2007-12-26 Anatoly Sokolov <aesok@post.ru> | |
51 | ||
52 | * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 | |
53 | and AT90USB162 devices from 'avr5' to 'avr35' architecture. | |
54 | (ASM_SPEC): Add 'avr35' architecture. | |
55 | * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 | |
56 | devices from 'avr5' to 'avr35' architecture. | |
57 | (avr_arch_types): Add "avr23" entries. | |
58 | (avr_arch): Add 'ARCH_AVR35'. | |
59 | * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'. | |
60 | (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5' | |
61 | to 'avr35' architecture. | |
62 | ||
63 | 2007-12-22 David Daney <ddaney@avtrex.com> | |
64 | ||
65 | * doc/install.texi (disable-libgcj-bc): Document new option. | |
66 | ||
67 | 2007-12-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
68 | ||
69 | * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in | |
70 | mask selection. | |
71 | ||
72 | PR target/34525 | |
73 | * pa.c (legitimize_pic_address): Emit insn to load function label | |
74 | forced to memory. | |
75 | ||
76 | 2007-12-21 Andrew Pinski <pinskia@gmail.com> | |
77 | Rask Ingemann Lambertsen <rask@sygehus.dk> | |
78 | ||
79 | PR target/8835 | |
80 | * config/mcore/mcore.c (mcore_function_value): Call promote_mode | |
81 | instead of PROMOTE_MODE. | |
82 | ||
83 | 2007-12-21 Sebastian Pop <sebastian.pop@amd.com> | |
84 | ||
85 | * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo. | |
86 | ||
87 | 2007-12-21 Sebastian Pop <sebastian.pop@amd.com> | |
88 | ||
89 | * tree-data-ref.c (signed_type_for_types): New. | |
90 | (affine_fn_op): Use signed_type_for_types and signed_type_for instead | |
91 | of long_integer_type_node. | |
92 | (analyze_ziv_subscript): Same. | |
93 | (analyze_siv_subscript_cst_affine): Same. | |
94 | (analyze_miv_subscript): Same. | |
95 | (omega_setup_subscript): Same. | |
96 | ||
97 | 2007-12-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
98 | ||
99 | * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with | |
100 | separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx | |
101 | as the first argument. | |
102 | * config/mips/mips.md (loadgp_newabi, loadgp_absolute) | |
103 | (loadgp_rtp): Rename to... | |
104 | (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>): | |
105 | ...these. Add modes to all operands. Add the target register | |
106 | as an operand. Combine loadgp_rtp<mode> with its splitter. | |
107 | ||
108 | 2007-12-20 Bob Wilson <bob.wilson@acm.org> | |
109 | ||
110 | * config/xtensa/xtensa.md (fix_return_addr): Remove. | |
111 | * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New. | |
112 | (xtensa_trampoline_template): New. | |
113 | * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h. | |
114 | (xtensa_return_addr): Expand to standard Xtensa insns instead of | |
115 | fix_return_addr. Get high bits from a local label. | |
116 | (xtensa_trampoline_template): New function with code moved from | |
117 | TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except | |
118 | when using CONST16 or absolute-mode literals. | |
119 | (xtensa_initialize_trampoline): New function with code moved from | |
120 | INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending | |
121 | on which trampoline version is used. | |
122 | * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment. | |
123 | * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define. | |
124 | (MIN_FRAME_SIZE): Moved to xtensa.c. | |
125 | (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template. | |
126 | (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes. | |
127 | (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline. | |
128 | * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define. | |
129 | (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3 | |
130 | helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match. | |
131 | * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise. | |
132 | * config/xtensa/ieee754-sf.S (__mulsf3): Likewise. | |
133 | ||
134 | 2007-12-20 Jakub Jelinek <jakub@redhat.com> | |
135 | ||
136 | PR c++/34459 | |
137 | * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if | |
138 | USE_STMT not only stores into the same object as STMT, but might | |
139 | read it too. | |
140 | ||
141 | 2007-12-19 Sebastian Pop <sebastian.pop@amd.com> | |
142 | ||
143 | PR tree-optimization/34413 | |
144 | * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript, | |
145 | analyze_siv_subscript_cst_affine, analyze_miv_subscript, | |
146 | omega_setup_subscript): Use long_integer_type_node instead of | |
147 | integer_type_node. | |
148 | ||
149 | 2007-12-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
150 | ||
151 | PR target/34525 | |
152 | * pa.c (legitimize_pic_address): Force function labels into memory. | |
153 | ||
154 | 2007-12-19 Zdenek Dvorak <ook@ucw.cz> | |
155 | ||
156 | * omp-low.c (build_omp_regions_1): Recognition of combined parallels | |
157 | moved ... | |
158 | (expand_omp): ... here. | |
159 | ||
160 | 2007-12-19 Zdenek Dvorak <ook@ucw.cz> | |
161 | ||
162 | PR tree-optimization/34355 | |
163 | * tree-parloops.c (take_address_of): Handle expresions | |
164 | instead of just variables. | |
165 | (eliminate_local_variables_1): Force whole invariant | |
166 | address to ssa name. | |
167 | ||
168 | 2007-12-19 Alexander Monakov <amonakov@ispras.ru> | |
169 | Revital Eres <eres@il.ibm.com> | |
170 | ||
171 | * modulo-sched.c (generate_reg_moves): Insert the reg-moves | |
172 | right before the notes which precedes the insn, if they exists. | |
173 | (loop_canon_p): Add dump info. | |
174 | (sms_schedule): Likewise. | |
175 | ||
176 | 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
177 | ||
178 | * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter. | |
179 | * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the | |
180 | rtl's register attributes when the parameter is true. | |
181 | * function.c (assign_parms_unsplit_complex, assign_parms) | |
182 | (expand_function_start): Update calls to set_decl_incoming_rtl. | |
183 | ||
184 | 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
185 | ||
186 | * rtl.def (SUBREG): Update comments. | |
187 | * rtl.h (reg_attrs): Be explicit about the type of offset used. | |
188 | (set_reg_attrs_from_mem): Rename to... | |
189 | (set_reg_attrs_from_value): ...this. | |
190 | (adjust_reg_mode, byte_lowpart_offset): Declare. | |
191 | * emit-rtl.c (byte_lowpart_offset): New function. | |
192 | (update_reg_offset): Remove special offset handling for big-endian | |
193 | targets. | |
194 | (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the | |
195 | offset parameter is added to REG_OFFSET. | |
196 | (adjust_reg_mode): New function. | |
197 | (set_reg_attrs_for_mem): Rename to... | |
198 | (set_reg_attrs_for_value): ...this and generalize to all values. | |
199 | If the register is a lowpart of the value, adjust the offset | |
200 | accordingly. | |
201 | (set_reg_attrs_for_parm): Update after the above renaming. | |
202 | (set_reg_attrs_for_decl_rtl): New function, split out from | |
203 | set_decl_incoming_rtl. Set the offset of plain REGs to the | |
204 | offset of the REG's mode from the decl's. Assert that all | |
205 | subregs are lowparts and handle their inner registers in the | |
206 | same way as plain REGs. | |
207 | (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl. | |
208 | (subreg_lowpart_offset): Explicitly say that the returned offset | |
209 | is a SUBREG_BYTE. | |
210 | * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode | |
211 | instead of PUT_MODE. | |
212 | * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset. | |
213 | * config/ia64/ia64.c (ia64_expand_load_address): Likewise. | |
214 | * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value. | |
215 | * reload.c (find_reloads_subreg_address): Call set_mem_offset | |
216 | when offseting a MEM. | |
217 | * var-tracking.c (offset_valid_for_tracked_p): Delete. | |
218 | (mode_for_reg_attrs): Replace with... | |
219 | (track_loc_p): ...this new function. Return the mode and offset | |
220 | to the caller, checking that the latter is valid. If the rtx is | |
221 | a paradoxical lowpart of the decl, use the decl's mode instead. | |
222 | Do the same when storing to a register that contains the entire decl. | |
223 | (var_lowpart): Use byte_lowpart_offset rather than | |
224 | subreg_lowpart_offset when adjusting the offset attribute. | |
225 | (count_uses, add_uses, add_stores): Use track_reg_p instead of | |
226 | REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p, | |
227 | offset_valid_for_tracked_p and mode_for_reg_attrs. Generate | |
228 | lowparts for MEMs as well as REGs. | |
229 | (vt_add_function_parameters): When obtaining the information from | |
230 | the decl_rtl, adjust the offset to match incoming. Use track_loc_p | |
231 | and var_lowpart. | |
232 | ||
233 | 2007-12-18 Sebastian Pop <sebastian.pop@amd.com> | |
234 | ||
235 | PR tree-optimization/34123 | |
236 | * lambda-code.c (can_duplicate_iv): New. | |
237 | (cannot_convert_modify_to_perfect_nest): New. | |
238 | (cannot_convert_bb_to_perfect_nest): New. | |
239 | (can_convert_to_perfect_nest): Split up. | |
240 | ||
241 | 2007-12-18 David Daney <ddaney@avtrex.com> | |
242 | ||
243 | * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation | |
244 | instead of .set push and .set pop. | |
245 | ||
246 | 2007-12-18 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
247 | ||
248 | PR target/33474 | |
249 | * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find | |
250 | the SET. | |
251 | ||
252 | 2007-12-18 Razya Ladelsky <razya@il.ibm.com> | |
253 | ||
254 | * tree-parloops.c (reduiction_info): Change documentation of | |
255 | reduction_initial field. | |
256 | (initialize_reductions): Remove creation of reduction_initial variable. | |
257 | (create_loads_for_reductions): don't join reduction_initial to | |
258 | the loaded value. | |
259 | ||
260 | 2007-12-18 Kaz Kylheku <kaz@zeugmasystems.com> | |
261 | ||
262 | PR rtl-optimization/34456 | |
263 | * resource.c (mark_set_resources): Use regs_invalidated_by_call | |
264 | rather than call_used_regs and global_regs. | |
265 | ||
266 | 2007-12-18 Jakub Jelinek <jakub@redhat.com> | |
267 | ||
268 | PR rtl-optimization/34490 | |
269 | * simplify-rtx.c (simplify_const_relational_operation): If !sign, | |
270 | don't reduce mmin/mmax using num_sign_bit_copies. | |
271 | ||
272 | 2007-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
273 | ||
274 | * doc/install.texi: Change recommended MPFR from 2.2.1 -> 2.3.0. | |
275 | ||
276 | 2007-12-17 Andreas Schwab <schwab@suse.de> | |
277 | ||
278 | * doc/invoke.texi (Warning Options): Use @itemx. | |
279 | ||
280 | 2007-12-17 Dorit Nuzman <dorit@il.ibm.com> | |
281 | ||
282 | * tree-vectorizer.h (verbosity_levels): Add new verbosity level | |
283 | REPORT_COST. | |
284 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change | |
285 | verbosity level to REPORT_COST. | |
286 | (vect_model_reduction_cost): Likewise. | |
287 | (vect_model_induction_cost): Likewise. | |
288 | (vect_model_simple_cost): likewise. | |
289 | (vect_model_store_cost): likewise. | |
290 | (vect_model_load_cost): likewise. | |
291 | (conservative_cost_threshold): Likewise. Remove print. | |
292 | ||
293 | 2007-12-17 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
294 | ||
295 | * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos. | |
296 | ||
297 | 2007-12-17 Jakub Jelinek <jakub@redhat.com> | |
298 | ||
299 | PR c/34506 | |
300 | * c-parser.c (c_parser_omp_all_clauses): Accept optional comma | |
301 | in between clauses. | |
302 | ||
303 | 2007-12-17 Dorit Nuzman <dorit@il.ibm.com> | |
304 | ||
305 | PR tree-optimization/34445 | |
306 | * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip | |
307 | stmts (including live stmts) that are not relevant. | |
308 | ||
309 | 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu> | |
310 | ||
311 | PR target/34025 | |
312 | * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS). | |
313 | * config/i386/t-crtfm: Likewise. | |
314 | ||
315 | 2007-12-17 Uros Bizjak <ubizjak@gmail.com> | |
316 | ||
317 | * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define. | |
318 | ||
319 | 2007-12-16 Uros Bizjak <ubizjak@gmail.com> | |
320 | ||
321 | * tree-vect-transform.c (conservative_cost_threshold): Add missing | |
322 | space to "not vectorized" message. | |
323 | ||
324 | 2007-12-16 Richard Sandiford <rsandifo@nildram.co.uk> | |
325 | ||
326 | PR rtl-optimization/34415 | |
327 | * df.h (DF_LR_IN, DF_LR_OUT): Update comments. | |
328 | * resource.c (mark_target_live_regs): Use DF_LR_IN rather than | |
329 | df_get_live_in. Don't handle pseudos. | |
330 | ||
331 | 2007-12-16 Jakub Jelinek <jakub@redhat.com> | |
332 | ||
333 | PR bootstrap/34003 | |
334 | * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl. | |
335 | * config/pa/pa.c (pa_encode_section_info): If !first, preserve | |
336 | SYMBOL_FLAG_REFERENCED flag. | |
337 | ||
338 | 2007-12-15 Alexandre Oliva <aoliva@redhat.com> | |
339 | ||
340 | * tree.c (type_hash_add): Fix whitespace. | |
341 | ||
342 | 2007-12-15 Hans-Peter Nilsson <hp@axis.com> | |
343 | ||
344 | Add CRIS v32 support. Fix -mcc-init. | |
345 | * config.gcc: Make crisv32-* have cpu_type cris. Handle | |
346 | crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none | |
347 | but without multilibs and with target_cpu_default=32. | |
348 | (crisv32-*-linux*): Handle as cris-*-linux*. Set | |
349 | target_cpu_default to 32 and 10 accordingly. | |
350 | * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro. | |
351 | (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME. | |
352 | Change regno_dir and regno only if !TARGET_V32. | |
353 | (cris_conditional_register_usage): If TARGET_V32, set | |
354 | reg_alloc_order as per REG_ALLOC_ORDER_V32 and make | |
355 | CRIS_ACR_REGNUM non-fixed. | |
356 | (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM. | |
357 | (cris_print_operand) <case 'Z', case 'u'>: New cases. | |
358 | <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM. | |
359 | (cris_reload_address_legitimized): Always return false for TARGET_V32. | |
360 | (cris_register_move_cost): New function, guts from | |
361 | REGISTER_MOVE_COST adjusted for CRIS v32. | |
362 | (cris_normal_notice_update_cc): New function split out from... | |
363 | (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for | |
364 | TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV, | |
365 | CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW | |
366 | for CC_NOOV32 and TARGET_V32. | |
367 | (cris_simple_epilogue): Always return false for TARGET_V32 if | |
368 | cris_return_address_on_stack yields true. | |
369 | (cris_cc0_user_requires_cmp): New function. | |
370 | (cris_valid_pic_const): Add argument ANY_OPERAND. All callers | |
371 | changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL. | |
372 | (cris_asm_output_case_end): New function, guts from | |
373 | ASM_OUTPUT_CASE_END adjusted for CRIS v32. | |
374 | (cris_override_options): Adjust for CRIS v32. Mask out | |
375 | TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32. | |
376 | (cris_asm_output_mi_thunk, cris_expand_epilogue) | |
377 | (cris_gen_movem_load, cris_emit_movem_store) | |
378 | (cris_expand_pic_call_address, cris_asm_output_symbol_ref) | |
379 | (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust | |
380 | for CRIS v32. | |
381 | (cris_split_movdx): Copy re-used MEM. | |
382 | * config/cris/t-elfmulti: Add multilib v32 for -march=v32. | |
383 | * config/cris/predicates.md | |
384 | ("cris_general_operand_or_pic_source"): New predicate. | |
385 | ("cris_general_operand_or_plt_symbol"): Replace by... | |
386 | ("cris_nonmemory_operand_or_callable_symbol"): New predicate. | |
387 | * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for | |
388 | presence and contents. | |
389 | (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for | |
390 | v32, 0 otherwise. | |
391 | (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC, | |
392 | CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT. | |
393 | (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH. | |
394 | * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents. | |
395 | (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT) | |
396 | (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros. | |
397 | (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use | |
398 | CRIS_DEFAULT_TUNE. | |
399 | (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT. | |
400 | (ASM_SPEC): Add sanity-check erroring out when both -march= and | |
401 | -mcpu= are specified. Pass on either as --march=v32. | |
402 | (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are | |
403 | specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION. | |
404 | (CRIS_CPU_V32): New macro. | |
405 | [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE. | |
406 | [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default | |
407 | TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition. | |
408 | Define v32-adjusted TARGET_DEFAULT. | |
409 | (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from | |
410 | CRIS_CPU_BASE. | |
411 | (TARGET_V32): New macro. | |
412 | (REG_ALLOC_ORDER_V32): New macro. | |
413 | (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes | |
414 | into CRIS_ACR_REGNUM. | |
415 | (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS | |
416 | and SPEC_GENNONACR_REGS. | |
417 | (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes. | |
418 | (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM. | |
419 | (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC | |
420 | GENNONACR_REGS, BASE_REG_CLASS otherwise. | |
421 | (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS. | |
422 | (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC | |
423 | for CRIS_ACR_REGNUM. | |
424 | (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred. | |
425 | (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO. | |
426 | (EXTRA_CONSTRAINT): New constraint 'U'. | |
427 | (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE) | |
428 | (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32. | |
429 | (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM. | |
430 | (SIMPLE_ADDRESS_P): Remove. | |
431 | (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant | |
432 | SIMPLE_ADDRESS_P. Make one chained if-else, finishing as | |
433 | non-match after BASE_OR_AUTOINCR_P for TARGET_V32. | |
434 | (REGISTER_MOVE_COST): Just call the new function | |
435 | cris_register_move_cost. | |
436 | (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to | |
437 | cris_rel_symbol. All users changed. | |
438 | (REGISTER_NAMES): Replace "pc" with "acr". | |
439 | (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15. | |
440 | (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence. | |
441 | (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax. | |
442 | (ASM_OUTPUT_CASE_END): Just call the new function | |
443 | cris_asm_output_case_end. | |
444 | * gcc/config/cris/cris.md: Group related constants together, with | |
445 | comments local. | |
446 | (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL) | |
447 | (CRIS_UNSPEC_CASESI): New constants. | |
448 | (CRIS_UNSPEC_PLT): Remove constant. | |
449 | (CRIS_ACR_REGNUM): New constant. | |
450 | ("slottable"): New attr alternatives "has_return_slot" and | |
451 | "has_call_slot". | |
452 | ("cc"): New attr alternatives "noov32" and "rev". | |
453 | ((eq_attr "slottable" "has_call_slot")) | |
454 | ((eq_attr "slottable" "has_return_slot")): New define_delays. | |
455 | ("movdi", "movsi"): Adjust operands for CRIS v32. | |
456 | ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3") | |
457 | ("indirect_jump"): Ditto. Make define_expand. | |
458 | ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp") | |
459 | ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32") | |
460 | ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32") | |
461 | ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32") | |
462 | ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32") | |
463 | ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32") | |
464 | ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32") | |
465 | ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32") | |
466 | ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32") | |
467 | ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32") | |
468 | ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32") | |
469 | ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns, | |
470 | for the corresponding standard name. | |
471 | ("tst<mode>"): Limit to BW and make define_expand. | |
472 | ("tstsi"): Make separate insn, adjusting for CRIS v32. | |
473 | ("*cmp_swapext<mode>"): Adjust for v32. Specify "rev" for attr "cc". | |
474 | ("cmpsi", "cmp<mode>"): Remove special cases for zero. Specify | |
475 | attr "cc". | |
476 | ("*btst"): Don't match for TARGET_CCINIT. Replace test of | |
477 | register with compatible "cmpq 0". Specify attr "cc". | |
478 | ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and | |
479 | define_split. | |
480 | (define_split for DI move): Match CRIS v32 only. | |
481 | ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32. | |
482 | ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32") | |
483 | ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32") | |
484 | ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32") | |
485 | ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32") | |
486 | ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. | |
487 | ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand. | |
488 | ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3. | |
489 | ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3. | |
490 | ("*extopqihi_non_v32"): Replace "*extopqihi". | |
491 | ("*extop<mode>si_non_v32"): Replace "*extop<mode>si". | |
492 | ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make | |
493 | non-v32 only. | |
494 | ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap". | |
495 | ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi". | |
496 | ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi". | |
497 | ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart". | |
498 | ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart". | |
499 | ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from | |
500 | "cris_general_operand_or_plt_symbol" to "general_operand". | |
501 | ("*expanded_call_value_non_v32") Ditto "*expanded_call_value". | |
502 | ("*casesi_adds_w", "mstep_shift", "mstep_mul") | |
503 | ("*expanded_call_side", "*expanded_call_value_side") | |
504 | (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped) | |
505 | (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz) | |
506 | (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only. | |
507 | ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3") | |
508 | ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3") | |
509 | ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2") | |
510 | ("cris_swap_bits"): Specify "noov32" for attr "cc". | |
511 | ("<su>mulsi3_highpart"): Ditto. Correct operand 0 to register_operand. | |
512 | ("andqi3"): Make define_expand. | |
513 | ("*return_expanded"): For attr "slottable", change from "has_slot" | |
514 | to "has_return_slot". | |
515 | ("cris_casesi_non_v32"): New pattern, old contents of "casesi". | |
516 | ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32". | |
517 | (moversideqi, movemsideqi, mover2side): Require | |
518 | TARGET_SIDE_EFFECT_PREFIXES. | |
519 | (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT | |
520 | to CRIS_UNSPEC_PLT_GOTREL. | |
521 | * config/cris/cris-protos.h (cris_register_move_cost) | |
522 | (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare. | |
523 | ||
524 | 2007-12-15 Alexandre Oliva <aoliva@redhat.com> | |
525 | ||
526 | PR debug/7081 | |
527 | * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h. | |
528 | (is_type_die): Cover interface types. | |
529 | (class_or_namespace_scope_p): Cover interface and class types. | |
530 | (record_type_tag): New. | |
531 | (gen_inlined_structure_type_die): Use it. | |
532 | (gen_struct_or_union_type_die): Likewise. | |
533 | (prune_unused_types_walk): Cover interface types. | |
534 | * langhooks.h (classify_record): New enum. | |
535 | (classify_record): New member in struct langhooks_for_types. | |
536 | * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New. | |
537 | (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust. | |
538 | ||
539 | 2007-12-15 Alexandre Oliva <aoliva@redhat.com> | |
540 | ||
541 | * dwarf2out.c (reference_to_unused): Don't emit strings in | |
542 | initializers just because of debug information. | |
543 | * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs. | |
544 | ||
545 | 2007-12-15 Sebastian Pop <sebastian.pop@amd.com> | |
546 | ||
547 | * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace | |
548 | print_loop_ir with print_loops. | |
549 | * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num, | |
550 | print_loops, print_loops_bb): Declare. | |
551 | * tree-cfg.c (print_loops_bb): New. | |
552 | (print_loop): Print header, latch, bounds, estimation of iterations. | |
553 | (print_loop_and_siblings): New. | |
554 | (print_loop_ir): Renamed print_loops. | |
555 | (debug_loop_ir): Renamed debug_loops. | |
556 | (debug_loop, debug_loop_num): New. | |
557 | ||
558 | 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org> | |
559 | ||
560 | * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment. | |
561 | ||
562 | 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org> | |
563 | ||
564 | * toplev.c (process_options): Fix typo in warning. | |
565 | ||
566 | 2007-12-14 Jakub Jelinek <jakub@redhat.com> | |
567 | ||
568 | PR target/29978 | |
569 | * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU | |
570 | DImode comparisons against constant with all 1's in the lower word. | |
571 | ||
572 | 2007-12-14 Uros Bizjak <ubizjak@gmail.com> | |
573 | ||
574 | * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand | |
575 | constraint for operand 2. Use nonimm_not_xmm0_operand constraint | |
576 | for operand 4. Update arguments in the call to | |
577 | gen_sse4_2_pcmpestr_cconly. | |
578 | (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn | |
579 | template accordingly. | |
580 | (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2. | |
581 | Use nonimm_not_xmm0_operand constraint for operand 3. Update | |
582 | arguments in the call to gen_sse4_2_pcmpistr_cconly. | |
583 | (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn | |
584 | template accordingly. | |
585 | ||
586 | 2007-12-14 Richard Guenther <rguenther@suse.de> | |
587 | ||
588 | PR middle-end/34462 | |
589 | * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add | |
590 | parameter to say whether to unlink immediate uses. | |
591 | * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not | |
592 | mark the artificial stmt as modified. Unlink immediate uses | |
593 | only if requested. | |
594 | * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller. | |
595 | * tree-ssa-pre.c (insert_fake_stores): Likewise. | |
596 | ||
597 | 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr> | |
598 | ||
599 | PR middle-end/33088 | |
600 | * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment. | |
601 | * tree-complex.c (init_dont_simulate_again): Return true if there are | |
602 | uninitialized loads generated by gimplify_modify_expr_complex_part. | |
603 | * tree-gimple.c (is_gimple_reg_type): Return false for complex types | |
604 | if not optimizing. | |
605 | * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from... | |
606 | (warn_uninit): ...here. Use ssa_undefined_value_p. | |
607 | * tree-ssa-pre.c (is_undefined_value): Delete. | |
608 | (phi_translate_1): Use ssa_undefined_value_p. | |
609 | (add_to_exp_gen): Likewise. | |
610 | (make_values_for_stmt): Likewise. | |
611 | * tree-flow.h (ssa_undefined_value_p): Declare. | |
612 | ||
613 | 2007-12-13 Andrew Pinski <pinskia@gmail.com> | |
614 | David Daney <ddaney@avtrex.com> | |
615 | ||
616 | PR bootstrap/34144 | |
617 | * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING | |
618 | is disabled. | |
619 | ||
620 | 2007-12-13 Jakub Jelinek <jakub@redhat.com> | |
621 | ||
622 | PR rtl-optimization/32636 | |
623 | * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx | |
624 | regno in entry_block_defs even if HAVE_prologue && epilogue_completed. | |
625 | ||
626 | 2007-12-13 Uros Bizjak <ubizjak@gmail.com> | |
627 | Richard Guenther <rguenther@suse.de> | |
628 | ||
629 | PR target/34435 | |
630 | * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16, | |
631 | _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16, | |
632 | _mm_shuffle_epi32): Cast non-constant input values to either __m64, | |
633 | __m128, __m128i or __m128d in a macro version of the intrinsic. | |
634 | Cast constant input values to int. | |
635 | * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto. | |
636 | * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16, | |
637 | _mm_roti_epi32, _mm_roti_epi64): Ditto. | |
638 | * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd, | |
639 | _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8, | |
640 | _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32, | |
641 | _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri, | |
642 | _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro, | |
643 | _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro, | |
644 | _mm_cmpestrs, _mm_cmpestrz): Ditto. | |
645 | * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto. | |
646 | * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw, | |
647 | _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto. | |
648 | * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd, | |
649 | _mm_round_ps, _mm_round_ss): Ditto. | |
650 | ||
651 | 2007-12-13 Richard Guenther <rguenther@suse.de> | |
652 | ||
653 | PR tree-optimization/34450 | |
654 | * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param. | |
655 | * invoke.texi (sccvn-max-scc-size): Document. | |
656 | * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency. | |
657 | * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false | |
658 | on error. | |
659 | * tree-ssa-sccvn.c (params.h): Include. | |
660 | (DFS): Return true if all went well, return false as soon as | |
661 | a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE. | |
662 | (run_scc_vn): Return true if all went well, return false if | |
663 | we aborted during DFS. | |
664 | * tree-ssa-pre.c (execute_pre): Check if SCCVN finished | |
665 | successfully, otherwise bail out. | |
666 | ||
667 | 2007-12-13 Olga Golovanevsky <olga@il.ibm.com> | |
668 | ||
669 | * ipa-struct-reorg.c (is_candidate): Print information to dump | |
670 | file when the type is initialized. | |
671 | (get_stmt_accesses): Likewise when a structure has bitfields | |
672 | or field access is too complicate. | |
673 | (safe_cond_expr_check): Likewise for unsafe condition expressions. | |
674 | (exclude_cold_structs): Likewise for cold structures. | |
675 | (collect_structures): Suppress redundant print when there are | |
676 | no structures to transform. | |
677 | (do_reorg): Print to dump file a number of structures that | |
678 | will be transformed. | |
679 | (dump_new_types): Print a number of new types to replace | |
680 | an original structure type. | |
681 | ||
682 | 2007-12-13 Olga Golovanevsky <olga@il.ibm.com> | |
683 | ||
684 | * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg | |
685 | option and struct-reorg-cold-struct-ratio parameter. | |
686 | ||
687 | 2007-12-13 Torbjorn Granlund <tege@swox.com> | |
688 | ||
689 | * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for | |
690 | ZERO_EXTEND when computing costs for widening multiplication. | |
691 | ||
692 | 2007-12-13 Richard Earnshaw <rearnsha@arm.com> | |
693 | ||
694 | PR target/30192 | |
695 | * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on | |
696 | exit when using hard FPA. | |
697 | * config/arm/ieee754-df.S (floatdidf): Likewise. | |
698 | ||
699 | 2007-12-12 Jakub Jelinek <jakub@redhat.com> | |
700 | ||
701 | PR bootstrap/30589 | |
702 | * doc/install.texi: Document that for MinGW only runtime 3.12 and | |
703 | later is supported. | |
704 | ||
705 | 2007-12-12 David Edelsohn <edelsohn@gnu.org> | |
706 | ||
707 | * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE. | |
708 | ||
709 | 2007-12-12 Aldy Hernandez <aldyh@redhat.com> | |
710 | ||
711 | PR tree-optimization/32901 | |
712 | * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we | |
713 | are assigning from a constant constructor. | |
714 | Fix wrapping in function comment. | |
715 | ||
716 | 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com> | |
717 | ||
718 | * config/s390/s390.c (s390_O_constraint_str): Limit the range | |
719 | for 'On' to -4G+1..-1. | |
720 | * config/s390/constraints.md: Adjust comment accordingly. | |
721 | ||
722 | 2007-12-11 Nathan Sidwell <nathan@codesourcery.com> | |
723 | ||
724 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx | |
725 | for SPE saves. | |
726 | ||
727 | 2007-12-11 Kai Tietz <kai.tietz@onevision.com> | |
728 | ||
729 | * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit | |
730 | target same as 32-bit. | |
731 | ||
732 | 2007-12-10 Jakub Jelinek <jakub@redhat.com> | |
733 | ||
734 | PR tree-optimization/34371 | |
735 | * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged | |
736 | field. | |
737 | (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field. | |
738 | * tree-vectorizer.c (set_prologue_iterations, | |
739 | slpeel_tree_peel_loop_to_edge): Call unshare_expr on | |
740 | LOOP_VINFO_NITERS_UNCHANGED before using it. | |
741 | ||
742 | 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr> | |
743 | ||
744 | PR target/34403 | |
745 | * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large. | |
746 | (ix86_expand_setmem): Likewise. | |
747 | ||
748 | 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com> | |
749 | ||
750 | PR rtl-optimization/34302 | |
751 | * auto-inc-dec.c (attempt_change): Change place where move is | |
752 | inserted. | |
753 | ||
754 | 2007-12-10 Jakub Jelinek <jakub@redhat.com> | |
755 | ||
756 | * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For | |
757 | Fortran multi-dimensional arrays use DW_AT_ordering | |
758 | DW_ORD_col_major. | |
759 | ||
760 | 2007-12-10 Paolo Bonzini <bonzini@gnu.org> | |
761 | ||
762 | PR target/32086 | |
763 | * config/i386/i386.c (override_options): Enable -fvect-cost-model. | |
764 | ||
765 | 2007-12-10 Uros Bizjak <ubizjak@gmail.com> | |
766 | ||
767 | * config/i386/i386.c (ix86_function_regparm): Do not check global_regs | |
768 | array, registers that are members of global_regs are also members of | |
769 | fixed_regs array. Use REGPARM_MAX to check that no regparm hard | |
770 | register is taken by a fixed register variable. Check up to and | |
771 | including DI_REG when adjusting regparm value due to fixed regs usage. | |
772 | (rep_prefix_usable): Check fixed_regs array, not global_regs array for | |
773 | available hard registers. | |
774 | (ix86_expand_strlen): Ditto. | |
775 | * config/i386/i386.md (strmov): Ditto. | |
776 | (cmpstrnsi): Ditto. | |
777 | ||
778 | 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org> | |
779 | ||
780 | * genopinit.c: Include tm_p.h in generated file. | |
781 | ||
782 | * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL | |
783 | to extract the integer from operands[2]. | |
784 | (vec_setv2di_internal): Likewise. | |
785 | ||
786 | * config/arm/arm.c (arm_size_return_regs): Make return type unsigned. | |
787 | (arm_init_neon_builtins): Move code after declarations. | |
788 | ||
789 | 2007-12-10 Hans-Peter Nilsson <hp@axis.com> | |
790 | ||
791 | * reload.c (find_reloads_address_1): To properly mark as an | |
792 | autoincdec, pass X for non-NULL OUT in call to push_reload for | |
793 | autoincdec which can't be trivially used as an address. | |
794 | ||
795 | 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com> | |
796 | Hans-Peter Nilsson <hp@axis.com> | |
797 | ||
798 | * caller-save.c (insert_one_insn): If inserting before a call_insn | |
799 | then the registers containing the arguments of the call are | |
800 | live_throughout in the new insn. | |
801 | ||
802 | 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
803 | ||
804 | PR middle-end/32889 | |
805 | PR target/34091 | |
806 | * pa.md: Consolidate HImode and QImode move patterns into one pattern | |
807 | each, eliminating floating-point alternatives. | |
808 | * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p): | |
809 | Declare functions. | |
810 | * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here. | |
811 | * pa.c (pa_secondary_reload): Use an intermediate general register | |
812 | for copies to/from floating-point register classes. Simplify code | |
813 | SHIFT_REGS class. Provide additional comments. | |
814 | (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions. | |
815 | * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p. | |
816 | (SECONDARY_MEMORY_NEEDED): Delete define. | |
817 | (INT14_OK_STRICT): Define. | |
818 | (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using | |
819 | soft float. | |
820 | (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise. | |
821 | (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for | |
822 | SFmode and DFmode. | |
823 | (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection. | |
824 | Align DImode offsets when generating 64-bit code. | |
825 | * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. | |
826 | (CANNOT_CHANGE_MODE_CLASS): Define. | |
827 | * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. | |
828 | (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class. | |
829 | ||
830 | 2007-12-09 Jakub Jelinek <jakub@redhat.com> | |
831 | ||
832 | PR fortran/22244 | |
833 | * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. | |
834 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. | |
835 | * langhooks.h (struct array_descr_info): Forward declaration. | |
836 | (struct lang_hooks_for_types): Add get_array_descr_info field. | |
837 | * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New. | |
838 | (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2 | |
839 | compatibility. | |
840 | * dwarf2out.h (struct array_descr_info): New type. | |
841 | * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to | |
842 | DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size. | |
843 | (descr_info_loc, add_descr_info_field, gen_descr_array_type_die): | |
844 | New functions. | |
845 | (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info | |
846 | and gen_descr_array_type_die. | |
847 | ||
848 | 2007-12-08 Richard Guenther <rguenther@suse.de> | |
849 | ||
850 | PR tree-optimization/34391 | |
851 | * tree-vect-transform.c (vect_setup_realignment): Mark new | |
852 | symbols for renaming. | |
853 | ||
854 | 2007-12-07 Bob Wilson <bob.wilson@acm.org> | |
855 | ||
856 | * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. | |
857 | (ASM_OUTPUT_DWARF_PCREL): Define. | |
858 | ||
859 | 2007-12-07 Richard Guenther <rguenther@suse.de> | |
860 | ||
861 | PR middle-end/34382 | |
862 | * opts.c (common_handle_option): Handle OPT_fforce_addr. | |
863 | ||
864 | 2007-12-07 Aldy Hernandez <aldyh@redhat.com> | |
865 | ||
866 | * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win. | |
867 | (LEGITIMIZE_RELOAD_ADDRESS): Same. | |
868 | ||
869 | 2007-12-07 Samuel Tardieu <sam@rfc1149.net> | |
870 | ||
871 | PR ada/29157 | |
872 | * doc/install.texi: Explain how to check for a clean environment when | |
873 | building GNAT. | |
874 | ||
875 | 2007-12-07 Richard Guenther <rguenther@suse.de> | |
876 | ||
877 | * tree-profile.c (gcov_type_tmp_var): New global variable. | |
878 | (tree_gen_edge_profiler): Use a single shared variable decl per | |
879 | function for edge counter incrementing. | |
880 | (tree_profiling): Re-set the shared variable. | |
881 | ||
882 | 2007-12-06 Bob Wilson <bob.wilson@acm.org> | |
883 | ||
884 | * config/xtensa/xtensa.c (xtensa_va_start): Add prototype. | |
885 | ||
886 | 2007-12-06 Tom Tromey <tromey@redhat.com> | |
887 | ||
888 | PR c/29172 | |
889 | * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache. | |
890 | ||
891 | 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk> | |
892 | ||
893 | * config/mips/mips.c (mips_function_ok_for_sibcall): Check | |
894 | targetm.binds_local_p as well as DECL_EXTERNAL. | |
895 | ||
896 | 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com> | |
897 | ||
898 | * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition. | |
899 | (set_prologue_iterations): New. Set the prologue iterations to total | |
900 | number of scalar iterations if the cost model check indicates that | |
901 | scalar code should be generated. | |
902 | (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for | |
903 | generating the cost condition for epilog. Call | |
904 | set_prologue_iterations to generate cost condition for prolog. | |
905 | (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED. | |
906 | * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New. | |
907 | (slpeel_tree_peel_loop_to_edge): Update declaration. | |
908 | (set_prologue_iterations): New declaration. | |
909 | * tree-vect-analyze.c (vect_analyze_loop_form): Update | |
910 | LOOP_VINFO_NITERS_UNCHANGED. | |
911 | * tree-vect-transform.c | |
912 | (vect_estimate_min_profitable_iters): Add new parameter and | |
913 | code to check if run time cost model test is needed. | |
914 | Remove code that adds builtin vectorization cost to scalar | |
915 | outside cost for the run time cost model test. If run time | |
916 | cost model test is needed add the appropriate guard cost to | |
917 | the scalar outside cost. The guard cost depends on whether | |
918 | the guard is generated at versioning or at prolog generation | |
919 | or at epilog generation. Change cost model equation to include | |
920 | scalar outside cost. | |
921 | (conservative_cost_threshold): New. Return the less conservative | |
922 | profitability threshold between the cost model threshold and the | |
923 | user defined vectorization threshold. | |
924 | (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold. | |
925 | (vect_do_peeling_for_alignment): Same. | |
926 | (vect_loop_versioning): Same. | |
927 | (vect_create_cond_for_align_checks): ANDs the cost model condition | |
928 | with the alignment condition. | |
929 | (vect_transform_loop): Call loop versioning only when there is a | |
930 | misalignment or an aliasing problem. | |
931 | ||
932 | 2007-12-06 Jakub Jelinek <jakub@redhat.com> | |
933 | ||
934 | PR middle-end/20983 | |
935 | * tree-ssa-ccp.c (optimize_stdarg_builtin): New function. | |
936 | (execute_fold_all_builtins): Call it for BUILT_IN_VA_START, | |
937 | BUILT_IN_VA_COPY and BUILT_IN_VA_END. | |
938 | ||
939 | * target.h (struct ggc_target): Add expand_builtin_va_start hook. | |
940 | * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
941 | (TARGET_INITIALIZER): Add it. | |
942 | * builtins.c (expand_builtin_va_start): Use | |
943 | targetm.expand_builtin_va_start hook instead of | |
944 | EXPAND_BUILTIN_VA_START macro. | |
945 | * alpha/alpha.c (alpha_va_start): Made static. | |
946 | (override_options): Clear targetm.expand_builtin_va_start if | |
947 | TARGET_UNICOSMK. | |
948 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
949 | * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove. | |
950 | * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove. | |
951 | * alpha/alpha-protos.h (alpha_va_start): Remove prototype. | |
952 | * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove. | |
953 | * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
954 | (xtensa_va_start): Made static. | |
955 | * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype. | |
956 | * pa/pa-protos.h (hppa_va_start): Remove prototype. | |
957 | * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove. | |
958 | * pa/pa.c (hppa_va_start): Made static, add prototype. | |
959 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
960 | * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype. | |
961 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
962 | * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype. | |
963 | * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove. | |
964 | * i386/i386.c (override_options): Clear | |
965 | targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI. | |
966 | (ix86_va_start): Made static. | |
967 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
968 | * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove. | |
969 | * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes. | |
970 | * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype. | |
971 | * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove. | |
972 | * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype. | |
973 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
974 | * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype. | |
975 | * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype. | |
976 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
977 | (rs6000_override_options): Clear targetm.expand_builtin_va_start if | |
978 | DEFAULT_ABI != ABI_V4. | |
979 | * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove. | |
980 | * spu/spu.c (spu_va_start): Made static, add prototype. | |
981 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
982 | * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove. | |
983 | * spu/spu-protos.h spu_va_start): Remove prototype. | |
984 | * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove. | |
985 | * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start): | |
986 | Remove prototype. | |
987 | * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static. | |
988 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
989 | * s390/s390-protos.h (s390_va_start): Remove prototype. | |
990 | * s390/s390.c (s390_va_start): Made static. | |
991 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
992 | * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove. | |
993 | * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove. | |
994 | * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype. | |
995 | * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype. | |
996 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
997 | * arc/arc.c (arc_va_start): Made static, add prototype. | |
998 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
999 | * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove. | |
1000 | * arc/arc-protos.h (arc_va_start): Remove prototype. | |
1001 | * mt/mt-protos.h (mt_va_start): Remove prototype. | |
1002 | * sparc/sparc.c (sparc_va_start): Made static, add prototype. | |
1003 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
1004 | * sparc/sparc-protos.h (sparc_va_start): Remove prototype. | |
1005 | * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove. | |
1006 | * sh/sh.c (sh_va_start): Made static, add prototype. | |
1007 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
1008 | * sh/sh-protos.h (sh_va_start): Remove prototype. | |
1009 | * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove. | |
1010 | * mips/mips-protos.h (mips_va_start): Remove prototype. | |
1011 | * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove. | |
1012 | * mips/mips.c (mips_va_start): Made static. | |
1013 | (TARGET_EXPAND_BUILTIN_VA_START): Define. | |
1014 | ||
1015 | 2007-12-06 Uros Bizjak <ubizjak@gmail.com> | |
1016 | ||
1017 | * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when | |
1018 | "flag_tree_parallelize_loops > 1". | |
1019 | ||
1020 | 2007-12-06 Zdenek Dvorak <ook@ucw.cz> | |
1021 | Dorit Nuzman <dorit@il.ibm.com> | |
1022 | Jakub Jelinek <jakub@redhat.com> | |
1023 | ||
1024 | PR tree-optimization/34005 | |
1025 | * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR. | |
1026 | * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr. | |
1027 | (gimplify_pure_cond_expr): New function. | |
1028 | (generic_expr_could_trap_p): New function. | |
1029 | (gimplify_cond_expr): Call gimplify_pure_cond_expr. | |
1030 | (force_gimple_operand): Initialize new field allow_rhs_cond_expr. | |
1031 | ||
1032 | 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com> | |
1033 | ||
1034 | * config/s390/s390.c (s390_emit_stack_tie): New function. | |
1035 | (s390_emit_prologue): Emit a stack tie when writing to the | |
1036 | f8-f15 stack slots. | |
1037 | * config/s390/s390.md ("stack_tie"): New insn definition. | |
1038 | ||
1039 | 2007-12-06 Ben Elliston <bje@au.ibm.com> | |
1040 | ||
1041 | * SERVICE: Remove. | |
1042 | * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item. | |
1043 | ||
1044 | 2007-12-05 Jakub Jelinek <jakub@redhat.com> | |
1045 | ||
1046 | PR middle-end/34337 | |
1047 | * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize | |
1048 | number of bits set in C1 if a mode mask for some mode can be used | |
1049 | instead. | |
1050 | ||
1051 | 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org> | |
1052 | ||
1053 | * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo | |
1054 | fixes. | |
1055 | ||
1056 | 2007-12-05 Richard Guenther <rguenther@suse.de> | |
1057 | ||
1058 | PR tree-optimization/34138 | |
1059 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): | |
1060 | Do not forward propagate addresses if that changes volatileness of | |
1061 | the pointed-to type. | |
1062 | ||
1063 | 2007-12-05 Uros Bizjak <ubizjak@gmail.com> | |
1064 | ||
1065 | PR target/34312 | |
1066 | * config/i386/i386.c (ix86_function_regparm): Also check for fixed | |
1067 | registers when checking that regparm registers are available. | |
1068 | Lower regparm value due to fixed registers usage in addition to | |
1069 | global regs usage. | |
1070 | ||
1071 | 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org> | |
1072 | ||
1073 | * sparseset.c: Include config.h and system.h before sparseset.h. | |
1074 | * sparseset.h: Remove inclusion of system.h. | |
1075 | ||
1076 | 2007-12-05 Jakub Jelinek <jakub@redhat.com> | |
1077 | Richard Sandiford <rsandifo@nildram.co.uk> | |
1078 | ||
1079 | * optabs.c (init_insn_codes): New function. | |
1080 | (new_optab): Delete. | |
1081 | (init_optab, init_optabv): Don't call new_optab. | |
1082 | (init_convert_optab): Don't clear the insn codes. | |
1083 | (init_optabs): Call init_insn_codes. | |
1084 | ||
1085 | 2007-12-04 Jakub Jelinek <jakub@redhat.com> | |
1086 | ||
1087 | * omp-low.c (optimize_omp_library_calls): New function. | |
1088 | (expand_omp_parallel): Call it if optimizing. | |
1089 | ||
1090 | PR middle-end/34134 | |
1091 | * stmt.c (expand_stack_restore): Call expand_normal on var to get | |
1092 | rtx for it instead of assuming it will be a VAR_DECL. | |
1093 | ||
1094 | 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
1095 | ||
1096 | * c-parser (c_parser_statement_after_labels): Move error from here... | |
1097 | (c_parser_label): ... to here. Check that the declaration is not | |
1098 | actually just another label. | |
1099 | ||
1100 | 2007-12-04 Richard Guenther <rguenther@suse.de> | |
1101 | ||
1102 | PR middle-end/34334 | |
1103 | PR middle-end/34222 | |
1104 | * tree-ssa-operands.c (get_addr_dereference_operands): If we | |
1105 | fall back to using the SMTs aliases, make sure to add virtual | |
1106 | operands for the SMT itself. | |
1107 | (create_ssa_artificial_load_stmt): Fix typo. Make sure to also | |
1108 | clear the loaded and stored symbols bitmaps. | |
1109 | ||
1110 | 2007-12-04 Ben Elliston <bje@au.ibm.com> | |
1111 | ||
1112 | * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default. | |
1113 | ||
1114 | 2007-12-04 Ben Elliston <bje@au.ibm.com> | |
1115 | ||
1116 | * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c. | |
1117 | ||
1118 | 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com> | |
1119 | ||
1120 | PR middle-end/33713 | |
1121 | * doc/invoke.texi: Remove -fforce-addr documentation. | |
1122 | * expr.c (emit_move_insn): Remove use of flag_force_addr. | |
1123 | (expand_expr_real_1): Same. | |
1124 | (do_tablejump): Same. | |
1125 | Call memory_address instead of memory_address_noforce. | |
1126 | * expr.h (memory_address_noforce): Remove prototype. | |
1127 | * explow.c (memory_address): Remove support for flag_force_addr. | |
1128 | (validize_mem): Same. | |
1129 | (memory_address_noforce): Remove. | |
1130 | * common.opt: Add dummy documentation for -fforce-addr. | |
1131 | * combine.c (can_combine_p): Remove -fforce-addr comment. | |
1132 | * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of | |
1133 | flag_force_addr. | |
1134 | * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment | |
1135 | relating to memory_address_noforce. | |
1136 | * testsuite/gcc.c-torture/compile/20050802-1.c: Remove. | |
1137 | * testsuite/gcc.c-torture/compile/20011113-1.c: Remove. | |
1138 | ||
1139 | 2007-12-03 Jakub Jelinek <jakub@redhat.com> | |
1140 | ||
1141 | * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this | |
1142 | with !ctx->is_nested. | |
1143 | (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts | |
1144 | even if !ctx->is_nested. | |
1145 | (lower_copyprivate_clauses, lower_send_clauses, | |
1146 | lower_send_shared_vars): Call lookup_decl_in_outer_ctx | |
1147 | unconditionally. | |
1148 | ||
1149 | PR middle-end/29749 | |
1150 | * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize | |
1151 | (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1)) | |
1152 | and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)). | |
1153 | (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize | |
1154 | (X & C2) << C1 into (X << C1) & (C2 << C1) and | |
1155 | (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further | |
1156 | optimizations. | |
1157 | ||
1158 | PR tree-optimization/33453 | |
1159 | * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR | |
1160 | for pointer addition. | |
1161 | * tree-parloops.c (canonicalize_loop_ivs): Likewise. | |
1162 | (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to | |
1163 | var_copy. | |
1164 | ||
1165 | 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com> | |
1166 | ||
1167 | * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as | |
1168 | necessary. | |
1169 | ||
1170 | 2007-12-03 Razya Ladelsky <razya@il.ibm.com> | |
1171 | ||
1172 | * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation. | |
1173 | ||
1174 | 2007-12-03 Jakub Jelinek <jakub@redhat.com> | |
1175 | ||
1176 | PR middle-end/34317 | |
1177 | * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop. | |
1178 | * common.opt (ftree-store-copy-prop): Use the same help text as for | |
1179 | other nop switches. | |
1180 | ||
1181 | 2007-12-02 Ayal Zaks <zaks@il.ibm.com> | |
1182 | Revital Eres <eres@il.ibm.com> | |
1183 | ||
1184 | * modulo-sched.c (calculate_must_precede_follow, | |
1185 | try_scheduling_node_in_cycle): New functions. | |
1186 | (sms_schedule_by_order): Call the new functions. | |
1187 | (ps_insn_find_column): Use must_follow and must_precede only if | |
1188 | they are not NULL. | |
1189 | (ps_insn_advance_column): Likewise. | |
1190 | ||
1191 | 2007-12-02 Ayal Zaks <zaks@il.ibm.com> | |
1192 | Revital Eres <eres@il.ibm.com> | |
1193 | ||
1194 | * modulo-sched.c (get_sched_window): Fix the direction of the | |
1195 | scheduling window and add dump info. | |
1196 | ||
1197 | 2007-12-02 Samuel Tardieu <sam@rfc1149.net> | |
1198 | ||
1199 | * config/sh/sh.md (cmpgeusi_t): Fix condition. | |
1200 | ||
1201 | 2007-11-30 Jan Hubicka <jh@suse.cz> | |
1202 | ||
1203 | * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag. | |
1204 | ||
1205 | 2007-11-30 Seongbae Park <seongbae.park@gmail.com> | |
1206 | ||
1207 | PR rtl-optimization/34171 | |
1208 | * cfgrtl.c (update_bb_for_insn_chain): New function, | |
1209 | refactored from update_bb_for_insn. | |
1210 | (update_bb_for_insn): Call update_bb_for_insn. | |
1211 | (rtl_merge_blocks, try_redirect_by_replacing_jump): | |
1212 | Replace a loop with update_bb_for_insn_chain call. | |
1213 | (cfg_layout_merge_blocks): Add a call to | |
1214 | update_bb_for_insn_chain. Replace the for loop | |
1215 | with a call to update_bb_for_insn_chain. | |
1216 | ||
1217 | 2007-11-30 Ben Elliston <bje@au.ibm.com> | |
1218 | ||
1219 | * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default. | |
1220 | ||
1221 | 2007-11-29 Zdenek Dvorak <ook@ucw.cz> | |
1222 | ||
1223 | PR tree-optimization/34244 | |
1224 | * tree-vrp.c (adjust_range_with_scev): Clear scev cache. | |
1225 | (record_numbers_of_iterations): New function. | |
1226 | (execute_vrp): Cache the numbers of iterations of loops. | |
1227 | * tree-scalar-evolution.c (scev_reset_except_niters): New function. | |
1228 | (scev_reset): Use scev_reset_except_niters. | |
1229 | * tree-scalar-evolution.h (scev_reset_except_niters): Declare. | |
1230 | ||
1231 | 2007-11-29 Jan Hubicka <jh@suse.cz> | |
1232 | Jakub Jelinek <jakub@redhat.com> | |
1233 | ||
1234 | PR tree-optimization/33434 | |
1235 | * tree-inline.c (setup_one_parameter): If the value passed to | |
1236 | a parameter is never used, don't set it up. | |
1237 | ||
1238 | 2007-11-29 Jakub Jelinek <jakub@redhat.com> | |
1239 | ||
1240 | PR target/32130 | |
1241 | * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak. | |
1242 | * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise. | |
1243 | ||
1244 | 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi> | |
1245 | ||
1246 | * Makefile.in: Use separate vpath lines for each path. | |
1247 | ||
1248 | 2007-11-29 Ben Elliston <bje@au.ibm.com> | |
1249 | ||
1250 | * SERVICE: Update URL. | |
1251 | ||
1252 | 2007-11-28 Jakub Jelinek <jakub@redhat.com> | |
1253 | ||
1254 | PR tree-optimization/34140 | |
1255 | * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than | |
1256 | loop->header has virtual phi nodes. | |
1257 | ||
1258 | 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk> | |
1259 | ||
1260 | PR target/32406 | |
1261 | * builtins.c (expand_builtin_nonlocal_goto): Also emit a use | |
1262 | of GP register, if valid and fixed. | |
1263 | ||
1264 | Revert: | |
1265 | 2007-06-21 David Daney <ddaney@avtrex.com> | |
1266 | ||
1267 | PR target/32406 | |
1268 | * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER | |
1269 | to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. | |
1270 | (exception_receiver): Renamed to ... | |
1271 | (nonlocal_goto_receiver): ... this. | |
1272 | ||
1273 | 2007-11-27 H.J. Lu <hongjiu.lu@intel.com> | |
1274 | Joey Ye <joey.ye@intel.com> | |
1275 | ||
1276 | PR target/34001 | |
1277 | * config/i386/i386.c (function_arg_32): Don't pass aggregate | |
1278 | arguments in ECX/EDX for fastcall. | |
1279 | ||
1280 | 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
1281 | ||
1282 | * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline | |
1283 | asm to macro. | |
1284 | * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise. | |
1285 | * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise. | |
1286 | ||
1287 | 2007-11-28 Ben Elliston <bje@au.ibm.com> | |
1288 | ||
1289 | * config/rs6000/aix64.opt (maix64): Add Negative(maix32). | |
1290 | (maix32): Add Negative(maix64). | |
1291 | ||
1292 | 2007-11-27 Jakub Jelinek <jakub@redhat.com> | |
1293 | ||
1294 | PR tree-optimization/34016 | |
1295 | * tree-ssa-loop.c (pass_linear_transform): Add | |
1296 | TODO_update_ssa_only_virtuals to todo_flags_finish. | |
1297 | ||
1298 | 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com> | |
1299 | ||
1300 | * config/avr/avr.c (avr_mcu_types): Add atmega32hvb. | |
1301 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
1302 | (CRT_BINUTILS_SPECS): Likewsie. | |
1303 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
1304 | ||
1305 | 2007-11-27 Jakub Jelinek <jakub@redhat.com> | |
1306 | ||
1307 | PR target/34225 | |
1308 | * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume | |
1309 | MEM_SIZE is set on all MEMs. | |
1310 | ||
1311 | 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com> | |
1312 | ||
1313 | * config/s390/s390.opt (mhard-float): Add the option to be | |
1314 | overridden. That was missing in my last patch. | |
1315 | ||
1316 | 2007-11-27 Richard Guenther <rguenther@suse.de> | |
1317 | ||
1318 | PR tree-optimization/34241 | |
1319 | * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure | |
1320 | to only delete real conversion chains. | |
1321 | ||
1322 | 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com> | |
1323 | ||
1324 | * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float, | |
1325 | mhard-float, mlong-double-64, mlong-double-128): Add the | |
1326 | option to be overridden. | |
1327 | ||
1328 | 2007-11-27 Richard Guenther <rguenther@suse.de> | |
1329 | ||
1330 | * builtins.c (fold_builtin_1): Verify the argument types | |
1331 | of BUILT_IN_ISNORMAL. | |
1332 | (fold_builtin_n): Verify the number of arguments to variadic | |
1333 | built-in functions. | |
1334 | ||
1335 | 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com> | |
1336 | ||
1337 | * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro. | |
1338 | * doc/invoke.texi (Blackfin Options): Document the effects. | |
1339 | ||
1340 | 2007-11-27 Ben Elliston <bje@au.ibm.com> | |
1341 | ||
1342 | * config/rs6000/sysv4.opt (m32): Add Negative(m64). | |
1343 | (m64): Add Negative(m32). | |
1344 | * config/rs6000/darwin.opt (m32): Add Negative(m64). | |
1345 | (m64): Add Negative(m32). | |
1346 | ||
1347 | 2007-11-26 Eric Botcazou <ebotcazou@adacore.com> | |
1348 | ||
1349 | * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo. | |
1350 | ||
1351 | 2007-11-26 Michael Meissner <michael.meissner@amd.com> | |
1352 | ||
1353 | PR target/34077 | |
1354 | * config/i386/i386.c (ix86_expand_movmem): If the copy size is a | |
1355 | constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode | |
1356 | to get the mode for loading a pseudo register with a count rather | |
1357 | than duplicating code. | |
1358 | ||
1359 | 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com> | |
1360 | ||
1361 | * config/avr/avr.c (avr_mcu_types): Add atmega1284p. | |
1362 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
1363 | (CRT_BINUTILS_SPECS): Likewsie. | |
1364 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
1365 | ||
1366 | 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
1367 | ||
1368 | * c-common.c (conversion_warning): Use get_unwidened instead of | |
1369 | get_narrower. | |
1370 | ||
1371 | 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
1372 | ||
1373 | PR c/23722 | |
1374 | * c-parser.c (struct c_parser): New bit in_if_block. | |
1375 | (c_parser_compound_statement_nostart): Handle unexpected 'else' | |
1376 | keyword. | |
1377 | (c_parser_statement_after_labels): Set in_if_block to false while | |
1378 | parsing. | |
1379 | (c_parser_if_body): Don't call c_parser_statement_after_labels if | |
1380 | a semicolon is found, just consume it. Don't call | |
1381 | c_parser_statement_after_labels if an open brace is found, call | |
1382 | c_parser_compound_statement instead. | |
1383 | (c_parser_else_body): New. | |
1384 | (c_parser_if_statement): Set in_if_block to true when parsing the | |
1385 | body of the 'if' statement. Use c_parser_else_body. | |
1386 | ||
1387 | 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com> | |
1388 | ||
1389 | PR c++/34081 | |
1390 | * c-decl.c (store_parm_decls): Pass 'false' for the new | |
1391 | allocate_struct_function parameter. | |
1392 | * cgraphunit.c (cgraph_build_static_cdtor): Likewise. | |
1393 | * tree-parloops.c (create_loop_fn): Likewise. | |
1394 | * function.c (push_function_context_to, push_struct_function, | |
1395 | init_function_start): Likewise. | |
1396 | (allocate_struct_function): Add boolean parameter. | |
1397 | * tree.h (allocate_struct_function): Add boolean parameter. | |
1398 | * function.h (struct function): Move returns_struct and | |
1399 | returns_pcc_struct to the end of the structure definiton. | |
1400 | ||
1401 | 2007-11-26 Uros Bizjak <ubizjak@gmail.com> | |
1402 | ||
1403 | PR target/34215 | |
1404 | * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if | |
1405 | virtual registers are already instantiated. | |
1406 | (truncxf<mode>2): Ditto. | |
1407 | (floatsi<mode>2): Ditto. | |
1408 | (floatdisf2): Ditto. | |
1409 | (floatdidf2): Ditto. | |
1410 | ||
1411 | 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
1412 | ||
1413 | PR target/34174 | |
1414 | * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy | |
1415 | the address before it is clobbered. | |
1416 | ||
1417 | 2007-11-26 Nick Clifton <nickc@redhat.com> | |
1418 | ||
1419 | * config/mn10300/mn10300.md: (call_internal): Remove mode on | |
1420 | operand 0 in order to match UNPSEC'ed calls generated in PIC mode. | |
1421 | (call_value_internal): Remove mode on operands 0 and 1 in order to | |
1422 | match UNPSEC'ed calls generated in PIC mode. | |
1423 | (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between | |
1424 | two insns. | |
1425 | ||
1426 | 2007-11-26 Richard Guenther <rguenther@suse.de> | |
1427 | ||
1428 | PR middle-end/34233 | |
1429 | * builtins.c (expand_builtin_pow): Use expand_expr to expand | |
1430 | the result of build_call_expr. | |
1431 | ||
1432 | 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com> | |
1433 | Revital Eres <eres@il.ibm.com> | |
1434 | ||
1435 | PR middle-end/34085 | |
1436 | * bb-reorder.c (insert_section_boundary_note): Clear | |
1437 | BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS. | |
1438 | ||
1439 | 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk> | |
1440 | ||
1441 | * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma. | |
1442 | ||
1443 | 2007-11-26 Alexandre Oliva <aoliva@redhat.com> | |
1444 | ||
1445 | * dwarf2asm.c (splay_tree_compare_strings): New function. | |
1446 | (dw2_force_const_mem): Use it. | |
1447 | ||
1448 | 2007-11-26 Alexandre Oliva <aoliva@redhat.com> | |
1449 | ||
1450 | * tree.c (type_hash_add): Don't violate strict aliasing rules. | |
1451 | ||
1452 | 2007-11-26 Alexandre Oliva <aoliva@redhat.com> | |
1453 | ||
1454 | PR c/27898 | |
1455 | * c-typeck.c (tagged_types_tu_compatible_p): Enable exact | |
1456 | matches between anonymous union fields. | |
1457 | ||
1458 | 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz> | |
1459 | ||
1460 | * tree-ssa-live.c (remove_unused_scope_block_p): Drop | |
1461 | declarations and blocks only after inlining. Check that | |
1462 | non-empty blocks are not dropped. | |
1463 | * tree-inline.c (expand_call_inline): Check that functions are | |
1464 | not inlined too late. | |
1465 | ||
1466 | 2007-11-26 Ben Elliston <bje@au.ibm.com> | |
1467 | ||
1468 | * unwind-dw2-fde.c: Fix comment typo. | |
1469 | * unwind-generic.h: Likewise, fix comment typos. | |
1470 | ||
1471 | 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk> | |
1472 | ||
1473 | * tree-sra.c (scalarize_use): Adjust the vpos argument to | |
1474 | sra_explode_bitfield_assignment in cases where the type is | |
1475 | wider than the bitfield. | |
1476 | ||
1477 | 2007-11-25 Richard Guenther <rguenther@suse.de> | |
1478 | ||
1479 | * tree.h (struct tree_block): Move locus member next to flags. | |
1480 | * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN. | |
1481 | (SCOPE_LIST_CONCAT): Likewise. | |
1482 | (pop_scope): Likewise. | |
1483 | * function.c (instantiate_decls_1): Likewise. | |
1484 | (setjmp_vars_warning): Likewise. | |
1485 | * emit-rtl.c (set_used_decls): Likewise. | |
1486 | * tree-inline.c (add_lexical_block): Likewise. | |
1487 | ||
1488 | 2007-11-24 Hans-Peter Nilsson <hp@axis.com> | |
1489 | ||
1490 | * rtlanal.c (label_is_jump_target_p): Return true for a matching | |
1491 | REG_LABEL_TARGET. | |
1492 | * reorg.c (fill_slots_from_thread): Correct last change to use | |
1493 | NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and | |
1494 | decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0). | |
1495 | * jump.c (mark_jump_label_1): Add comment for last change | |
1496 | regarding JUMP_LABEL setting. | |
1497 | * gcse.c (add_label_notes): Remove conditional that the label is | |
1498 | mentioned in insn before adding regnote. | |
1499 | * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a | |
1500 | single_set insn only feeding a label to a jump through a | |
1501 | register that dies there. | |
1502 | ||
1503 | 2007-11-23 Dirk Mueller <dmueller@suse.de> | |
1504 | Richard Guenther <rguenther@suse.de> | |
1505 | ||
1506 | PR middle-end/34197 | |
1507 | * tree-vrp.c (check_array_ref): Move check for valid location.. | |
1508 | (check_array_bounds) here. Use EXPR_HAS_LOCATION(). | |
1509 | ||
1510 | 2007-11-23 Hans-Peter Nilsson <hp@axis.com> | |
1511 | ||
1512 | * reload.c (find_reloads_address_1) <autoincdec cases>: | |
1513 | Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code. | |
1514 | ||
1515 | 2007-11-23 Richard Guenther <rguenther@suse.de> | |
1516 | Michael Matz <matz@suse.de> | |
1517 | ||
1518 | PR tree-optimization/34176 | |
1519 | * alloc-pool.h (empty_alloc_pool): Declare. | |
1520 | * alloc-pool.c (empty_alloc_pool): New function. | |
1521 | * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the | |
1522 | valid table if a lookup from the optimistic table failed. | |
1523 | (vn_unary_op_lookup): Likewise. | |
1524 | (vn_binary_op_lookup): Likewise. | |
1525 | (vn_phi_lookup): Likewise. | |
1526 | (process_scc): Clear optimistic tables before every iteration. | |
1527 | ||
1528 | 2007-11-23 Richard Guenther <rguenther@suse.de> | |
1529 | ||
1530 | * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks. | |
1531 | (merge_alias_info): Do verification only if checking is | |
1532 | enabled. Merge flow-sensitive alias information in simple cases. | |
1533 | * tree-ssa-operands.c (get_addr_dereference_operands): Also | |
1534 | complain about missing NMTs. | |
1535 | ||
1536 | 2007-11-23 Jakub Jelinek <jakub@redhat.com> | |
1537 | ||
1538 | PR c++/34198 | |
1539 | * c-common.c (conversion_warning): For INTEGER_TYPE to | |
1540 | INTEGER_TYPE conversions call get_narrower on expr to avoid | |
1541 | spurious warnings from binop shortening or when the implicit | |
1542 | conversion can't change the value. | |
1543 | ||
1544 | 2007-11-22 Joseph Myers <joseph@codesourcery.com> | |
1545 | ||
1546 | PR c/14050 | |
1547 | * c-decl.c (set_array_declarator_inner): Don't give error for | |
1548 | static or type qualifiers in abstract declarator. Remove | |
1549 | abstract_p parameter. | |
1550 | * c-tree.h (set_array_declarator_inner): Update prototype. | |
1551 | * c-parser.c (c_parser_direct_declarator_inner): Update call to | |
1552 | set_array_declarator_inner. | |
1553 | * doc/standards.texi: Update for C99 TC3. | |
1554 | ||
1555 | 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com> | |
1556 | ||
1557 | * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate | |
1558 | line in my edit of the last change. | |
1559 | ||
1560 | 2007-11-22 Jakub Jelinek <jakub@redhat.com> | |
1561 | ||
1562 | PR target/33947 | |
1563 | * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW | |
1564 | and TREE_READONLY on the fn decl rather than passing a chain | |
1565 | of attributes. | |
1566 | ||
1567 | 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org> | |
1568 | ||
1569 | * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially. | |
1570 | ||
1571 | 2007-11-22 Uros Bizjak <ubizjak@gmail.com> | |
1572 | ||
1573 | * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking | |
1574 | of ix86_arch and ix86_tune into a switch statement. | |
1575 | (enum processor_type): Default PROCESSOR_I386 to 0. | |
1576 | * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead | |
1577 | of "ix86_tune == PROCESSOR_K6". | |
1578 | (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into | |
1579 | a switch statement. | |
1580 | ||
1581 | 2007-11-22 Tom Tromey <tromey@redhat.com> | |
1582 | ||
1583 | * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to | |
1584 | avoid writing into string allocated by ggc_alloc_string. | |
1585 | ||
1586 | 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org> | |
1587 | ||
1588 | PR target/34155 | |
1589 | * config/sh/sh.md (binary_sf_op): Remove. | |
1590 | (binary_sf_op0, binary_sf_op1): New define_insn_and_split. | |
1591 | * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0 | |
1592 | and gen_binary_sf_op1. | |
1593 | ||
1594 | 2007-11-21 Hans-Peter Nilsson <hp@axis.com> | |
1595 | ||
1596 | * regclass.c (init_reg_autoinc): Fix typo preventing test of | |
1597 | secondary output reload when setting forbidden_inc_dec_class. | |
1598 | ||
1599 | 2007-11-21 Richard Guenther <rguenther@suse.de> | |
1600 | ||
1601 | PR tree-optimization/34148 | |
1602 | * tree-ssa-structalias.c (create_variable_info_for): Do not use | |
1603 | field-sensitive PTA for single-element structures. | |
1604 | * tree-ssa-alias.c (create_overlap_variables_for): Do not create | |
1605 | SFTs for single-element structures. | |
1606 | ||
1607 | 2007-11-20 Richard Guenther <rguenther@suse.de> | |
1608 | ||
1609 | PR middle-end/34154 | |
1610 | * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead | |
1611 | of the signed INT_CST_LT. | |
1612 | * stmt.c (expand_case): Likewise. | |
1613 | (estimate_case_costs): Likewise. | |
1614 | ||
1615 | 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
1616 | ||
1617 | * read-rtl.c (fatal_expected_char): Print EOF as text rather that | |
1618 | its binary representation. | |
1619 | ||
1620 | 2007-11-20 Richard Guenther <rguenther@suse.de> | |
1621 | ||
1622 | * tree-ssa-operands.c (add_virtual_operand): Consistently prune | |
1623 | accesses. | |
1624 | ||
1625 | 2007-11-20 Thiemo Seufer <ths@mips.com> | |
1626 | ||
1627 | * config/mips/mips.c (mips_file_start): Add support for | |
1628 | flagging 32-bit code with -mfp64 floating-point. | |
1629 | ||
1630 | 2007-11-20 Jakub Jelinek <jakub@redhat.com> | |
1631 | ||
1632 | PR c/34146 | |
1633 | * c-gimplify.c (optimize_compound_literals_in_ctor): New function. | |
1634 | (c_gimplify_expr): Use it. | |
1635 | ||
1636 | 2007-11-20 Ben Elliston <bje@au.ibm.com> | |
1637 | ||
1638 | * config/spu/spu_mfcio.h: Fix typo. | |
1639 | ||
1640 | 2007-11-20 Ben Elliston <bje@au.ibm.com> | |
1641 | ||
1642 | * unwind.inc: Comment that unwind-sjlj.c includes this file. | |
1643 | ||
1644 | 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
1645 | Ben Elliston <bje@au.ibm.com> | |
1646 | ||
1647 | * config/spu/mfc_tag_release.c: New file. | |
1648 | * config/spu/mfc_multi_tag_release.c: Likewise. | |
1649 | * config/spu/mfc_multi_tag_reserve.c: Likewise. | |
1650 | * config/spu/mfc_tag_release.c: Likewise. | |
1651 | * config/spu/mfc_tag_reserve.c: Likewise. | |
1652 | * config/spu/mfc_tag_table.c: Likewise. | |
1653 | * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them. | |
1654 | (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2. | |
1655 | * config/spu/spu_mfcio.h: Avoid <stdint.h>. | |
1656 | (uint64_t): Typedef if __IN_LIBGCC2 is defined. | |
1657 | (MFC_TAG_INVALID, MFC_TAG_VALID): New macros. | |
1658 | (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve, | |
1659 | mfc_multi_tag_release): Likewise. | |
1660 | (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve, | |
1661 | __mfc_multi_tag_release): Declare. | |
1662 | ||
1663 | 2007-11-19 Jason Merrill <jason@redhat.com> | |
1664 | ||
1665 | PR debug/28834, debug/29436, c/32326 | |
1666 | * tree.c (build_type_attribute_qual_variant): Refuse to make | |
1667 | a distinct copy of a struct/enum type. Use build_distinct_type_copy. | |
1668 | * doc/extend.texi (Type Attributes): Don't encourage people to add | |
1669 | attributes to struct/enum types in a typedef. Fix | |
1670 | transparent_union example. | |
1671 | ||
1672 | * tree-inline.c (remap_type_1): Remove code that's redundant with | |
1673 | remap_type. | |
1674 | (build_duplicate_type): Set id.copy_decl. | |
1675 | * c-common.c (handle_transparent_union_attribute): Simplify logic. | |
1676 | ||
1677 | 2007-11-19 Peter Bergner <bergner@vnet.ibm.com> | |
1678 | ||
1679 | * config/rs6000/rs6000.c (invalid_e500_subreg, | |
1680 | rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p, | |
1681 | rs6000_legitimize_address, rs6000_legitimize_reload_address, | |
1682 | rs6000_legitimate_address, function_arg_advance, | |
1683 | spe_build_register_parallel, rs6000_spe_function_arg, | |
1684 | rs6000_split_multireg_move, spe_func_has_64bit_regs_p, | |
1685 | emit_frame_save, gen_frame_mem_offset, rs6000_function_value, | |
1686 | rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and | |
1687 | TDmode similarly to DFmode and TFmode. | |
1688 | * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK, | |
1689 | DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise. | |
1690 | ||
1691 | 2007-11-19 Eric Botcazou <ebotcazou@adacore.com> | |
1692 | ||
1693 | * stor-layout.c (lang_adjust_rli): Delete. | |
1694 | (set_lang_adjust_rli): Likewise. | |
1695 | (layout_type): Do not call lang_adjust_rli hook. | |
1696 | * tree.h (set_lang_adjust_rli): Delete. | |
1697 | ||
1698 | 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com> | |
1699 | ||
1700 | * config/bfin/bfin.c (must_save_p): New function, mostly broken out of | |
1701 | n_dregs_to_save and n_pregs_to_save. | |
1702 | (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE; | |
1703 | all callers changed. | |
1704 | (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be | |
1705 | able to save single D/P registers that aren't saved by the push/pop | |
1706 | multiple insns. | |
1707 | ||
1708 | 2007-11-19 Richard Guenther <rguenther@suse.de> | |
1709 | ||
1710 | PR tree-optimization/34099 | |
1711 | * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR, | |
1712 | MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED | |
1713 | if only one operand is undefined. | |
1714 | ||
1715 | 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr> | |
1716 | ||
1717 | PR tree-optimization/34036 | |
1718 | * opts.c (set_fast_math_flags): Do not set flags in common | |
1719 | with set_unsafe_math_optimizations_flags, invoke it directly. | |
1720 | (set_unsafe_math_optimizations_flags): Unset flag_trapping_math | |
1721 | and flag_signed_zeros. | |
1722 | * toplev.c (process_options): Force flag_associative_math to 0 and | |
1723 | warn, if it is set and either flag_trapping_math or flag_signed_zeros | |
1724 | is set too. | |
1725 | * doc/invoke.texi (Optimize Options): Document the new behavior | |
1726 | of -funsafe-math-optimizations, that -fassociative-math requires | |
1727 | both -fno-signed-zeros and -fno-trapping-math and make it clear | |
1728 | that -fno-trapping-math requires -fno-signaling-nans. Refactor | |
1729 | documentation of -ffast-math. | |
1730 | ||
1731 | 2007-11-18 Jakub Jelinek <jakub@redhat.com> | |
1732 | ||
1733 | PR rtl-optimization/34132 | |
1734 | * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note | |
1735 | and insn. | |
1736 | ||
1737 | PR middle-end/33335 | |
1738 | * optabs.h (optab_table): Change type to struct optab from optab. | |
1739 | (convert_optab_table): Similarly. | |
1740 | Adjust all _optab macros to expand to addresses of optab_table | |
1741 | resp. convert_optab_table elements rather than the values of the | |
1742 | elements. | |
1743 | * optabs.c (optab_table): Change typype to struct optab from optab. | |
1744 | If compiled by recent GCC, initialize all the insn_code fields in | |
1745 | the array using designated range initializers. | |
1746 | (convert_optab_table): Similarly. | |
1747 | (convert_optab_libfunc, optab_libfunc, set_optab_libfunc, | |
1748 | set_conv_libfunc): Into libfunc_entry's optab field store index within | |
1749 | optab_table resp. convert_optab_table array instead of difference | |
1750 | between two separately malloced addresses. | |
1751 | (new_optab): Add op argument, don't return anything. Initialize | |
1752 | just the insn_code field in handlers array and only when needed. | |
1753 | (init_optab, init_optabv): Add op argument, don't return anything. | |
1754 | Adjust new_optab caller. | |
1755 | (new_convert_optab): Removed. | |
1756 | (init_convert_optab): Add op argument, don't return anything, don't | |
1757 | call new_convert_optab. If needed, initialize insn_code field in | |
1758 | handlers array. | |
1759 | (init_optabs): Adjust init_optab, init_optabv and init_convert_optab | |
1760 | callers. | |
1761 | (debug_optab_libfuncs): Adjust uses of optab_table and | |
1762 | convert_optab_table arrays. | |
1763 | ||
1764 | 2007-11-18 Richard Guenther <rguenther@suse.de> | |
1765 | ||
1766 | PR tree-optimization/34127 | |
1767 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): | |
1768 | Make code match up the comments, require compatibility of the | |
1769 | pointed-to types. | |
1770 | ||
1771 | 2007-11-17 Richard Guenther <rguenther@suse.de> | |
1772 | ||
1773 | PR middle-end/34130 | |
1774 | * fold-const.c (extract_muldiv_1): Do not move negative | |
1775 | constants inside ABS_EXPR. | |
1776 | ||
1777 | 2007-11-16 Ian Lance Taylor <iant@google.com> | |
1778 | ||
1779 | * collect2.c (dump_file): If a demangled symbol is followed by a | |
1780 | space, make sure we output at least one space. | |
1781 | ||
1782 | 2007-11-16 Richard Guenther <rguenther@suse.de> | |
1783 | ||
1784 | PR middle-end/34030 | |
1785 | * fold-const.c (fold_binary): Use correct types for folding | |
1786 | 1 << X & Y to Y >> X & 1. | |
1787 | ||
1788 | 2007-11-16 Richard Guenther <rguenther@suse.de> | |
1789 | ||
1790 | PR tree-optimization/33870 | |
1791 | * tree.h (struct tree_memory_tag): Add base_for_components flag. | |
1792 | (struct tree_struct_field_tag): Remove nesting_level field. | |
1793 | (SFT_NESTING_LEVEL): Remove. | |
1794 | (SFT_BASE_FOR_COMPONENTS_P): Add. | |
1795 | * tree-flow.h (struct fieldoff): Remove nesting_level field. Add | |
1796 | base_for_components flag. | |
1797 | (push_fields_onto_fieldstack): Remove nesting_level parameter. | |
1798 | * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components | |
1799 | parameter. | |
1800 | (create_overlap_variables_for): Deal with it. | |
1801 | * tree-dfa.c (dump_subvars_for): Likewise. | |
1802 | (dump_variable): Likewise. | |
1803 | * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. | |
1804 | Set base_for_components for first elements of sub-structures. | |
1805 | (create_variable_info_for): Handle base_for_components. | |
1806 | (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for | |
1807 | pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set. | |
1808 | * tree-ssa-operands.c (ref_nesting_level): Remove. | |
1809 | (add_vars_for_offset): Remove full_ref parameter, always add | |
1810 | the offset of the pointed-to SFT. | |
1811 | (add_virtual_operand): Adjust for changed signature of | |
1812 | add_vars_for_offset. | |
1813 | ||
1814 | 2007-11-16 Sa Liu <saliu@de.ibm.com> | |
1815 | ||
1816 | * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined | |
1817 | floatunssidf2 and floatunsdidf2. | |
1818 | ||
1819 | 2007-11-16 Richard Guenther <rguenther@suse.de> | |
1820 | ||
1821 | PR tree-optimization/34113 | |
1822 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): | |
1823 | Use correct conversion direction for checking type compatibility. | |
1824 | ||
1825 | 2007-11-16 Richard Guenther <rguenther@suse.de> | |
1826 | ||
1827 | PR tree-optimization/34099 | |
1828 | * tree-ssa-ccp.c (likely_value): Use a whitelist for operators | |
1829 | that produce UNDEFINED result if at least one of its operands | |
1830 | is UNDEFINED. By default the result is only UNDEFINED if all | |
1831 | operands are UNDEFINED. | |
1832 | ||
1833 | 2007-11-16 Jakub Jelinek <jakub@redhat.com> | |
1834 | ||
1835 | PR driver/30460 | |
1836 | * gcc.c (init_spec): Don't initialize asm_debug here... | |
1837 | (main): ... but here. | |
1838 | ||
1839 | 2007-11-07 Tom Tromey <tromey@redhat.com> | |
1840 | ||
1841 | * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. | |
1842 | * tree-parloops.c (create_loop_fn): Use set_cfun. | |
1843 | * gengtype.c (open_base_files): Emit #undef cfun. | |
1844 | * ipa-struct-reorg.c (do_reorg_1): Use set_cfun. | |
1845 | * function.h (cfun): New define. | |
1846 | * function.c: Undefine cfun. | |
1847 | ||
1848 | 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com> | |
1849 | ||
1850 | * config/avr/avr.c (avr_mcu_types): Add attiny88. | |
1851 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
1852 | (CRT_BINUTILS_SPECS): Likewsie. | |
1853 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
1854 | ||
1855 | 2007-11-15 Jakub Jelinek <jakub@redhat.com> | |
1856 | ||
1857 | PR middle-end/23848 | |
1858 | * tree-ssa-ccp.c (optimize_stack_restore): New function. | |
1859 | (execute_fold_all_builtins): Call optimize_stack_restore for | |
1860 | BUILT_IN_STACK_RESTORE. | |
1861 | ||
1862 | 2007-11-15 Paolo Bonzini <bonzini@gnu.org> | |
1863 | ||
1864 | * fwprop.c (try_fwprop_subst): Skip profitability check for forward | |
1865 | propagation into an address; that's done in should_replace_address. | |
1866 | ||
1867 | 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
1868 | ||
1869 | * config/spu/spu-protos.h (legitimate_const): Remove prototype. | |
1870 | * config/spu/spu.c (legitimate_const): Remove. | |
1871 | (classify_immediate): Inline call to legitimate_const. | |
1872 | (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT | |
1873 | for any constant, not just -512 .. 511. | |
1874 | ||
1875 | 2007-11-15 Sa Liu <saliu@de.ibm.com> | |
1876 | ||
1877 | * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL | |
1878 | condition from HONOR_NANS test. | |
1879 | * config/spu/spu.md (ceq_df): Always generate comparison code | |
1880 | inline, including checks for NaNs and infinities. | |
1881 | (cgt_df): Likewise. | |
1882 | (cgt_v2df): Likewise. | |
1883 | (cmpdf): Make this expander unconditional. | |
1884 | ||
1885 | 2007-11-15 Richard Guenther <rguenther@suse.de> | |
1886 | ||
1887 | * tree-ssa-alias.c (create_overlap_variables_for): Make sure | |
1888 | to only create SFTs if we also create variable infos for PTA. | |
1889 | * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs. | |
1890 | ||
1891 | 2007-11-15 Richard Guenther <rguenther@suse.de> | |
1892 | ||
1893 | * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to | |
1894 | type for TBAA pruning. | |
1895 | (find_what_p_points_to): Call set_uids_in_ptset with the original | |
1896 | pointer, not the decl of the solution we collapsed to. | |
1897 | ||
1898 | 2007-11-14 David Daney <ddaney@avtrex.com> | |
1899 | ||
1900 | * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA | |
1901 | to find sigcontext. | |
1902 | ||
1903 | 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr> | |
1904 | ||
1905 | PR target/33923 | |
1906 | * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes | |
1907 | for registers in BR_REGS class. | |
1908 | ||
1909 | 2007-11-14 Jakub Jelinek <jakub@redhat.com> | |
1910 | ||
1911 | PR middle-end/34088 | |
1912 | * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if | |
1913 | init_ssa_operands has not been called for cfun. | |
1914 | ||
1915 | 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr> | |
1916 | ||
1917 | PR tree-optimization/34046 | |
1918 | * cfg.c (update_bb_profile_for_threading): Avoid the division for the | |
1919 | scaling if the old probability is greater than the new base. | |
1920 | ||
1921 | 2007-11-14 Sebastian Pop <sebastian.pop@amd.com> | |
1922 | ||
1923 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove | |
1924 | unused edges after loop duplication. | |
1925 | ||
1926 | 2007-11-14 Uros Bizjak <ubizjak@gmail.com> | |
1927 | ||
1928 | * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ... | |
1929 | (enum target_cpu_default): ... this enum. | |
1930 | (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ... | |
1931 | * config/i386/i386.c (override_options): ... here. | |
1932 | * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use | |
1933 | TARGET_CPU_DEFAULT_i486. | |
1934 | ||
1935 | 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
1936 | ||
1937 | * global.c (rest_of_handle_global_alloc): Fix comment typos. | |
1938 | * config/sh/sh.c (sh_rtx_costs): Likewise. | |
1939 | * ChangeLog: Likewise. | |
1940 | ||
1941 | 2007-11-13 Sebastian Pop <sebastian.pop@amd.com> | |
1942 | ||
1943 | * tree-chrec.h (build_polynomial_chrec): RHS of a chrec | |
1944 | should not be of pointer type. | |
1945 | ||
1946 | 2007-11-13 Michael Meissner <michael.meissner@amd.com> | |
1947 | ||
1948 | * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line. | |
1949 | ||
1950 | 2007-11-13 Sterling Augustine <sterling@tensilica.com> | |
1951 | Bob Wilson <bob.wilson@acm.org> | |
1952 | ||
1953 | * config/xtensa/unwind-dw2-xtensa.c: New. | |
1954 | * config/xtensa/unwind-dw2-xtensa.h: New. | |
1955 | * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove. | |
1956 | (DWARF2_UNWIND_INFO): Remove. | |
1957 | (DWARF_FRAME_REGISTERS): Define. | |
1958 | (EH_RETURN_DATA_REGNO): Define. | |
1959 | * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define. | |
1960 | (eh_return): New. | |
1961 | * config/xtensa/t-xtensa (LIB2ADDEH): Define. | |
1962 | ||
1963 | 2007-11-13 Jakub Jelinek <jakub@redhat.com> | |
1964 | ||
1965 | * doc/invoke.texi: Fix description of -fsched-stalled-insns=0, | |
1966 | -fsched-stalled-insns. | |
1967 | ||
1968 | PR tree-optimization/34063 | |
1969 | * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument | |
1970 | as first chrec_fold_plus operand rather than second. | |
1971 | ||
1972 | 2007-11-13 Diego Novillo <dnovillo@google.com> | |
1973 | ||
1974 | PR tree-optimization/33870 | |
1975 | * tree.h (strcut tree_memory_tag): Add field unpartitionable. | |
1976 | Remove field in_nested_struct. | |
1977 | (struct tree_struct_field_tag): Add field nesting_level. | |
1978 | (sft_in_nested_struct): Remove. | |
1979 | (sft_nesting_level): Define. | |
1980 | (sft_unpartitionable_p): Define. | |
1981 | * tree-ssa-alias.c (mem_sym_score): If mp->var is not | |
1982 | partitionable, return long_max. | |
1983 | (compute_memory_partitions): Do not partition sfts marked | |
1984 | unpartitionable. | |
1985 | (create_sft): Add argument nesting_level. Set | |
1986 | sft_nesting_level with it. Update all users. | |
1987 | (create_overlap_variables_for): Show nesting level. | |
1988 | * tree-dfa.c (dump_subvars_for): Likewise. | |
1989 | (dump_variable): Likewise. Show whether the sft is | |
1990 | partitionable or not. | |
1991 | * tree-flow.h (struct fieldoff): Remove field in_nested_struct. | |
1992 | Add field nesting_level. | |
1993 | * tree-ssa-structalias.c (struct variable_info): Remove | |
1994 | field in_nested_struct. | |
1995 | (push_fields_onto_fieldstack): Add argument nesting_level. | |
1996 | Update all users. Update documentation. Update pair->nesting_level | |
1997 | with nesting_level. Make recursive calls with nesting_level + 1. | |
1998 | (set_uids_in_ptset): If an sft is added to the points-to set, | |
1999 | mark it as unpartitionable. | |
2000 | * tree-ssa-operands.c (ref_nesting_level): New. | |
2001 | (add_vars_for_offset): Call it. Add argument full_ref. Update | |
2002 | callers. If var is inside a nested structure and the nesting level | |
2003 | of full_ref is lower than the nesting level of var, | |
2004 | adjust offset by the offset of var. | |
2005 | ||
2006 | 2007-11-13 Victor Kaplansky <victork@il.ibm.com> | |
2007 | ||
2008 | PR tree-optimization/32582 | |
2009 | * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize | |
2010 | ||
2011 | 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net> | |
2012 | ||
2013 | * doc/extend.texi (dllimport): Document that pointers to dllimport'd | |
2014 | functions can be used as constant. | |
2015 | ||
2016 | 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr> | |
2017 | ||
2018 | PR rtl-optimization/34035 | |
2019 | * cse.c (cse_cfg_altered): New global variable. | |
2020 | (cse_jumps_altered): Make boolean. | |
2021 | (recorded_label_ref): Likewise. | |
2022 | (cse_insn): Adjust for above changes. | |
2023 | (cse_extended_basic_block): Likewise. Set cse_cfg_altered | |
2024 | if dead edges have been purged. | |
2025 | (cse_main): Change return value specification and adjust code. | |
2026 | (rest_of_handle_cse): Adjust for above change. | |
2027 | (rest_of_handle_cse2): Likewise. | |
2028 | * gcse.c (rest_of_handle_gcse): Likewise. | |
2029 | ||
2030 | 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
2031 | Michael Meissner <michael.meissner@amd.com> | |
2032 | ||
2033 | * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to | |
2034 | get the appropriate suffix for the coms* instruction. | |
2035 | (sse5_pcmov_<mode>): Restrict operands of pcmov | |
2036 | for scalar case to be only xmm registers and not memory. | |
2037 | ||
2038 | * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand | |
2039 | constraints to follow the mnemonics for the pcmov instruction | |
2040 | ||
2041 | 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk> | |
2042 | ||
2043 | PR target/34042 | |
2044 | * config/mips/mips.c (mips_return_fpr_single): New function. | |
2045 | (mips_function_value): Use it when returning single-field | |
2046 | aggregates in FPRs. | |
2047 | (mips_expand_call): Handle the PARALLELs created by | |
2048 | mips_return_fpr_single. | |
2049 | ||
2050 | 2007-11-12 Richard Guenther <rguenther@suse.de> | |
2051 | ||
2052 | PR middle-end/34070 | |
2053 | * fold-const.c (fold_binary): If testing for non-negative | |
2054 | operands with tree_expr_nonnegative_warnv_p make sure to | |
2055 | use op0 which has all (sign) conversions retained. | |
2056 | ||
2057 | 2007-11-12 Richard Guenther <rguenther@suse.de> | |
2058 | ||
2059 | PR middle-end/34027 | |
2060 | * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m. | |
2061 | (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR. | |
2062 | ||
2063 | 2007-11-12 Ira Rosen <irar@il.ibm.com> | |
2064 | ||
2065 | PR tree-optimization/33953 | |
2066 | * tree-vect-transform.c (vectorizable_operation): In case of SLP, | |
2067 | allocate vec_oprnds1 according to the number of created vector | |
2068 | statements. In case of shift with scalar argument, store scalar | |
2069 | operand for every vector statement to be created for the SLP node. | |
2070 | Fix a comment. | |
2071 | ||
2072 | 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com> | |
2073 | ||
2074 | * gcse.c (CUID_INSN): Remove. | |
2075 | (cuid_insn): Ditto. | |
2076 | (alloc_gcse_mem): Don't allocate cuid_insn. | |
2077 | (free_gcse_mem): Don't free cuid_insn. | |
2078 | ||
2079 | 2007-11-10 Jakub Jelinek <jakub@redhat.com> | |
2080 | ||
2081 | PR fortran/34020 | |
2082 | * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared | |
2083 | nops. | |
2084 | ||
2085 | PR middle-end/34018 | |
2086 | * tree-inline.h (copy_body_data): Add regimplify field. | |
2087 | * tree-inline.c (copy_body_r): Set id->regimplify to true | |
2088 | if an TREE_INVARIANT ADDR_EXPR is no longer invariant after | |
2089 | substitutions. | |
2090 | (copy_bb): Clear id->regimplify before walk_tree, if it is | |
2091 | set afterwards, regimplify the whole statement. | |
2092 | ||
2093 | PR tree-optimization/33680 | |
2094 | * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt | |
2095 | if the added cast involves variable length types. | |
2096 | ||
2097 | 2007-11-09 Alexander Monakov <amonakov@ispras.ru> | |
2098 | Maxim Kuvyrkov <maxim@codesourcery.com> | |
2099 | ||
2100 | * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER | |
2101 | instead of TRUE_BARRIER for jumps. Add register dependencies | |
2102 | even when reg_pending_barrier is set. | |
2103 | ||
2104 | 2007-11-09 Alexander Monakov <amonakov@ispras.ru> | |
2105 | ||
2106 | * haifa-sched.c (haifa_classify_insn): Rename to ... | |
2107 | (haifa_classify_rtx): ... this. Improve handling of COND_EXECs, | |
2108 | handle PARALLELs by recursing. Use it ... | |
2109 | (haifa_classify_insn): ... here. Reimplement. | |
2110 | ||
2111 | 2007-11-09 Richard Guenther <rguenther@suse.de> | |
2112 | ||
2113 | * bitmap.h (bitmap_single_bit_set_p): Declare. | |
2114 | * bitmap.c (bitmap_single_bit_set_p): New function. | |
2115 | * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it. | |
2116 | (maybe_create_global_var): Use bitmap_empty_p. | |
2117 | ||
2118 | 2007-11-09 Paolo Bonzini <bonzini@gnu.org> | |
2119 | Jakub Jelinek <jakub@redhat.com> | |
2120 | ||
2121 | PR rtl-optimization/34012 | |
2122 | * fwprop.c (try_fwprop_subst): Do not replace if the new | |
2123 | SET_SRC has a higher cost than the old one. | |
2124 | ||
2125 | 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr> | |
2126 | ||
2127 | PR rtl-optimization/33732 | |
2128 | * reload.c (push_reload): Check that the REG_DEAD note was referring | |
2129 | to a hardreg or to a pseudo that has been assigned exactly one hardreg | |
2130 | before considering it in order to select the reload register. | |
2131 | (combine_reloads): Likewise. | |
2132 | (find_dummy_reload): Likewise. | |
2133 | ||
2134 | 2007-11-09 Richard Guenther <rguenther@suse.de> | |
2135 | ||
2136 | * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD. | |
2137 | (struct ptr_info_def): Likewise. | |
2138 | (enum escape_type): Also use bit zero. | |
2139 | ||
2140 | 2007-11-09 Richard Guenther <rguenther@suse.de> | |
2141 | ||
2142 | PR tree-optimization/33604 | |
2143 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): | |
2144 | Disregard changes in CV qualifiers of pointed to types for | |
2145 | forward propagating ADDR_EXPRs. | |
2146 | * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original | |
2147 | expression. | |
2148 | ||
2149 | 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk> | |
2150 | ||
2151 | * dse.c (find_shift_sequence): Always choose an integer mode for | |
2152 | new_mode. | |
2153 | (replace_read): Require both the read and store mode to be | |
2154 | integer ones. Remove a then-redundant FLOAT_P check. | |
2155 | ||
2156 | 2007-11-08 Richard Guenther <rguenther@suse.de> | |
2157 | ||
2158 | * tree-dfa.c (remove_referenced_var): If removing a | |
2159 | variable which has subvars, also remove those from | |
2160 | the referenced vars. Do not create a variable annotation. | |
2161 | ||
2162 | 2007-11-08 Bob Wilson <bob.wilson@acm.org> | |
2163 | ||
2164 | * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first | |
2165 | argument for gen_entry calls. | |
2166 | * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute. | |
2167 | (entry): Use the new attribute value. Remove unused first operand. | |
2168 | ||
2169 | 2007-11-08 Tom Tromey <tromey@redhat.com> | |
2170 | ||
2171 | * c-parser.c (c_parser_translation_unit): Use location in error. | |
2172 | (c_parser_external_declaration): Likewise. | |
2173 | (c_parser_declaration_or_fndef): Likewise. | |
2174 | (c_parser_enum_specifier): Likewise. | |
2175 | (c_parser_struct_or_union_specifier): Likewise. | |
2176 | (c_parser_struct_declaration): Likewise. | |
2177 | (c_parser_typeof_specifier): Likewise. | |
2178 | (c_parser_parms_list_declarator): Likewise. | |
2179 | (c_parser_asm_string_literal): Likewise. | |
2180 | (c_parser_braced_init): Likewise. | |
2181 | (c_parser_initelt): Likewise. | |
2182 | (c_parser_compound_statement_nostart): Likewise. | |
2183 | (c_parser_statement_after_labels): Likewise. | |
2184 | (c_parser_do_statement): Likewise. | |
2185 | (c_parser_asm_statement): Likewise. | |
2186 | (c_parser_conditional_expression): Likewise. | |
2187 | (c_parser_unary_expression): Likewise. | |
2188 | (c_parser_sizeof_expression): Likewise. | |
2189 | (c_parser_postfix_expression): Likewise. | |
2190 | (c_parser_postfix_expression_after_paren_type): Likewise. | |
2191 | (c_parser_objc_class_instance_variables): Likewise. | |
2192 | (c_parser_objc_method_definition): Likewise. | |
2193 | (c_parser_objc_methodprotolist): Likewise. | |
2194 | (c_parser_pragma): Likewise. | |
2195 | (c_parser_omp_clause_num_threads): Likewise. | |
2196 | (c_parser_omp_clause_schedule): Likewise. | |
2197 | (c_parser_omp_all_clauses): Likewise. | |
2198 | (c_parser_omp_sections_scope): Likewise. | |
2199 | (c_parser_label): Use location of label, not colon. | |
2200 | ||
2201 | 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net> | |
2202 | ||
2203 | PR target/33774 | |
2204 | * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if | |
2205 | IN_TARGET_LIBS. | |
2206 | ||
2207 | 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> | |
2208 | ||
2209 | PR middle-end/33826 | |
2210 | * ipa-pure-const.c (static_execute): Added code to keep recursive | |
2211 | functions from being marked as pure or const. | |
2212 | * ipa-utils.c (searchc): Fixed comment. | |
2213 | ||
2214 | 2007-11-08 Tom Tromey <tromey@redhat.com> | |
2215 | ||
2216 | * common.opt (fshow-column): Default to 0. | |
2217 | * configure: Rebuilt. | |
2218 | * configure.ac (--enable-mapped-location): Default to 'yes'. | |
2219 | ||
2220 | 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> | |
2221 | ||
2222 | * common.opt: Add pointer to doc/options.texi. | |
2223 | * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const, | |
2224 | -fipa-reference): Add or correct doc. Sorted options list for -Os | |
2225 | -O, -O2. | |
2226 | ||
2227 | 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org> | |
2228 | ||
2229 | PR target/16350 | |
2230 | * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT. | |
2231 | * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on | |
2232 | TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS. | |
2233 | (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT. | |
2234 | (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler. | |
2235 | * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according | |
2236 | to TARGET_BIG_ENDIAN_DEFAULT. | |
2237 | (SUBTARGET_EXTRA_LINK_SPEC): Likewise. | |
2238 | * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according | |
2239 | to TARGET_BIG_ENDIAN_DEFAULT. | |
2240 | ||
2241 | 2007-11-07 Diego Novillo <dnovillo@google.com> | |
2242 | ||
2243 | * tree.h (struct tree_struct_field_tag): Move field | |
2244 | in_nested_struct ... | |
2245 | (struct tree_memory_tag): ... here. | |
2246 | ||
2247 | 2007-11-07 Diego Novillo <dnovillo@google.com> | |
2248 | ||
2249 | PR 33870 | |
2250 | * tree.h (struct tree_struct_field_tag): Add field in_nested_struct. | |
2251 | (SFT_IN_NESTED_STRUCT): Define. | |
2252 | * tree-dfa.c (dump_subvars_for): Show offset of each sub-var. | |
2253 | * tree-flow.h (struct fieldoff): Add field in_nested_struct. | |
2254 | * tree-ssa-structalias.c (struct variable_info): Likewise. | |
2255 | (push_fields_onto_fieldstack): If OFFSET is positive, | |
2256 | set in_nested_struct. | |
2257 | (create_variable_info_for): Copy setting of | |
2258 | in_nested_struct from the field offset object. | |
2259 | (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the | |
2260 | variable info object. | |
2261 | * tree-ssa-operands.c (add_vars_for_offset): If VAR | |
2262 | belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR). | |
2263 | ||
2264 | 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> | |
2265 | ||
2266 | PR rtl-optimization/33737 | |
2267 | * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of | |
2268 | target block after computing the probabilities of outgoing edges. | |
2269 | Cap the frequency to BB_FREQ_MAX. | |
2270 | * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and | |
2271 | frequency of the basic block if it has been reused. | |
2272 | ||
2273 | 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> | |
2274 | ||
2275 | PR rtl-optimization/33822 | |
2276 | * rtl.h (REG_OFFSET): Fix comment. | |
2277 | * var-tracking.c (INT_MEM_OFFSET): New macro. | |
2278 | (var_mem_set): Use it. | |
2279 | (var_mem_delete_and_set): Likewise. | |
2280 | (var_mem_delete): Likewise. | |
2281 | (same_variable_part_p): Likewise. | |
2282 | (vt_get_decl_and_offset): Likewise. | |
2283 | (offset_valid_for_tracked_p): New predicate. | |
2284 | (count_uses): Do not track locations with invalid offsets. | |
2285 | (add_uses): Likewise. | |
2286 | (add_stores): Likewise. | |
2287 | ||
2288 | 2007-11-07 Tom Tromey <tromey@redhat.com> | |
2289 | ||
2290 | * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H) | |
2291 | (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H). | |
2292 | ||
2293 | 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru> | |
2294 | Andrey Belevantsev <abel@ispras.ru> | |
2295 | ||
2296 | * modulo-sched.c (sms_order_nodes, permute_partial_schedule, | |
2297 | generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes. | |
2298 | (calculate_order_params, sms_order_nodes): New parameter pmax_asap. | |
2299 | Save calculated max_asap in it. | |
2300 | (sms_schedule): Calculate maxii using max_asap. | |
2301 | ||
2302 | 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com> | |
2303 | ||
2304 | * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp | |
2305 | with -mhard-dfp/-mno-hard-dfp. | |
2306 | ||
2307 | 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com> | |
2308 | Jakub Jelinek <jakub@redhat.com> | |
2309 | ||
2310 | PR middle-end/33670 | |
2311 | * haifa-sched.c (check_sched_flags): Remove. | |
2312 | (sched_init): Don't call it. | |
2313 | ||
2314 | 2007-11-06 Diego Novillo <dnovillo@google.com> | |
2315 | ||
2316 | * tree-flow.h (struct fieldoff): Reformat comment. Document fields. | |
2317 | * tree-ssa-operands.c: Tidy top-level comments. | |
2318 | (add_vop): Likewise. | |
2319 | (add_vars_for_offset): Tidy parameter formatting.. | |
2320 | (get_addr_dereference_operands): Likewise. | |
2321 | (get_indirect_ref_operands): Likewise. | |
2322 | (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat. | |
2323 | <OMP_ATOMIC_STORE>: Likewise. | |
2324 | ||
2325 | 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
2326 | ||
2327 | PR target/32787 | |
2328 | * config/i386/driver-i386.c: Test for __GNUC__ instead of | |
2329 | GCC_VERSION which is always defined. | |
2330 | ||
2331 | 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
2332 | ||
2333 | PR target/30961 | |
7fe08989 L |
2334 | * reload.c (find_reloads): Also check in_reg when handling a |
2335 | simple move with an input reload and a destination of a hard | |
2336 | register. | |
f13d199c RB |
2337 | |
2338 | 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com> | |
2339 | ||
2340 | * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes. | |
2341 | (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, | |
2342 | TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL, | |
2343 | TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, | |
2344 | TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine. | |
2345 | (m68k_sched_attr_type2): New function. | |
2346 | (sched_adjust_cost_state): New static variable. | |
2347 | (m68k_sched_adjust_cost): New static function implementing | |
2348 | scheduler hook. | |
2349 | (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code): | |
2350 | New static variables. | |
2351 | (m68k_sched_variable_issue): New static function implementing | |
2352 | scheduler hook. | |
2353 | (sched_dump_class_def, sched_dump_class_func_t): New typedefs. | |
2354 | (sched_dump_split_class): New static function. | |
2355 | (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static | |
2356 | variables. | |
2357 | (sched_dump_dfa_class, m68k_sched_dump): New static function. | |
2358 | (m68k_sched_md_init_global, m68k_sched_md_finish_global, | |
2359 | m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle, | |
2360 | m68k_sched_dfa_post_advance_cycle): New static functions implementing | |
2361 | scheduler hooks. | |
2362 | ||
2363 | * config/m68k/m68k.h (m68k_sched_attr_type2): Declare. | |
2364 | (CPU_UNITS_QUERY): Define. | |
2365 | ||
2366 | * config/m68k/cf.md: New file. | |
2367 | * config/m68k/m68.md (cf.md): New include. | |
2368 | ||
2369 | 2007-11-06 Tom Tromey <tromey@redhat.com> | |
2370 | ||
2371 | PR c++/32256 | |
2372 | PR c++/32368 | |
2373 | * function.c (saved_in_system_header): New global. | |
2374 | (push_cfun): Save in_system_header. | |
2375 | (pop_cfun): Restore in_system_header. | |
2376 | (push_struct_function): Save in_system_header. | |
2377 | ||
2378 | 2007-11-06 Douglas Gregor <doug.gregor@gmail.com> | |
2379 | ||
2380 | PR c++/33977 | |
2381 | PR c++/33886 | |
2382 | * c-common.c (c_build_qualified_type): Moved to c-typeck.c. | |
2383 | (complete_array_type): Set canonical type appropriately. | |
2384 | * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The | |
2385 | C and C++ front ends now have different versions of this function, | |
2386 | because the C++ version needs to maintain canonical types here. | |
2387 | ||
2388 | 2007-11-04 Razya Ladelsky <razya@il.ibm.com> | |
2389 | ||
2390 | * tree-parloops.c (reduction_info): Remove reduction_init field. | |
2391 | (initialize_reductions): Remove creation of the reduction_init variable. | |
2392 | (struct data_arg): Remove. | |
2393 | (add_field_for_reduction, create_stores_for_reduction): New functions. | |
2394 | (add_field_for_name): Remove reduction handling. | |
2395 | (separate_decls_in_loop): Call add_field_for_reduction, | |
2396 | create_stores_for_reduction. | |
2397 | ||
2398 | 2007-11-06 Jakub Jelinek <jakub@redhat.com> | |
2399 | ||
2400 | PR tree-optimization/33458 | |
2401 | * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates | |
2402 | !is_gimple_val PHI argument, gimplify it and insert it on edge. | |
2403 | ||
2404 | PR tree-optimization/33993 | |
2405 | * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector | |
2406 | rather than build_constructor_from_list if all list values are | |
2407 | constants. | |
2408 | (get_initial_def_for_induction): Use build_vector instead of | |
2409 | build_constructor_from_list. | |
2410 | ||
2411 | 2007-11-05 Mark Mitchell <mark@codesourcery.com> | |
2412 | ||
2413 | PR target/33579 | |
2414 | * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P. | |
2415 | (DECL_FINI_PRIORITY): Likewise. | |
2416 | * tree.c (decl_init_priority_lookup): Remove assert. | |
2417 | (decl_fini_priority_insert): Likewise. | |
2418 | * cgraphunit.c (static_ctors): Make it a VEC. | |
2419 | (static_dtors): Likewise. | |
2420 | (record_cdtor_fn): Adjust accordingly. | |
2421 | (build_cdtor): Generate multiple functions for each initialization | |
2422 | priority. | |
2423 | (compare_ctor): New function. | |
2424 | (compare_dtor): Likewise. | |
2425 | (cgraph_build_cdtor_fns): Sort the functions by priority before | |
2426 | calling build_cdtor. | |
2427 | (cgraph_build_static_cdtor): Put the priority in the function's name. | |
2428 | ||
2429 | 2007-11-05 H.J. Lu <hongjiu.lu@intel.com> | |
2430 | ||
2431 | PR driver/32632 | |
2432 | * common.opt: Add shared and pie. | |
2433 | ||
2434 | 2007-11-05 Bob Wilson <bob.wilson@acm.org> | |
2435 | ||
2436 | * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not | |
2437 | replace references to virtual_stack_vars_rtx in goto_handler. | |
2438 | ||
2439 | 2007-11-05 Paul Brook <paul@codesourcery.com> | |
2440 | ||
2441 | * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs. | |
2442 | * config/arm/arm.c (arm_lang_output_object_attributes_hook): New. | |
2443 | (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call | |
2444 | arm_lang_output_object_attributes_hook. | |
2445 | * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare. | |
2446 | (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init. | |
2447 | * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add | |
2448 | prototype. | |
2449 | * config/arm/t-arm.c (arm.o): New rule. | |
2450 | * config/arm/arm-c.c: New file. | |
2451 | ||
2452 | 2007-11-05 Nick Clifton <nickc@redhat.com> | |
2453 | Sebastian Pop <sebastian.pop@amd.com> | |
2454 | ||
2455 | PR tree-optimization/32540 | |
2456 | PR tree-optimization/33922 | |
2457 | * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH. | |
2458 | * tree-ssa-pre.c: Include params.h. | |
2459 | (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH | |
2460 | to limit the maximum length of the PA set for a given block. | |
2461 | * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c | |
2462 | * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter. | |
2463 | ||
2464 | 2007-11-05 Nathan Sidwell <nathan@codesourcery.com> | |
2465 | ||
2466 | * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, | |
2467 | __fixunssfDI): Make return type unsigned. | |
2468 | * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, | |
2469 | __fixunssfDI): Make return type unsigned. | |
2470 | ||
2471 | 2007-11-05 Jakub Jelinek <jakub@redhat.com> | |
2472 | ||
2473 | PR tree-optimization/33856 | |
2474 | * tree-data-ref.c (get_references_in_stmt): Don't add | |
2475 | REFERENCE_CLASS_P trees to references vector if get_base_address | |
2476 | returns NULL on them. | |
2477 | ||
2478 | 2007-11-05 Alexandre Oliva <aoliva@redhat.com> | |
2479 | ||
2480 | * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum. | |
2481 | ||
2482 | 2007-11-04 Andrew Pinski <pinskia@gmail.com> | |
2483 | ||
2484 | PR middle-end/32931 | |
2485 | * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type | |
2486 | for TRUTH_NOT_EXPR to type. | |
2487 | ||
2488 | 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com> | |
2489 | ||
2490 | * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez. | |
2491 | ||
2492 | 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
2493 | ||
2494 | PR fortran/10220 | |
2495 | * dwarf2out.c (add_calling_convention_attribute): Change | |
2496 | second argument. Set calling convention to DW_CC_program for | |
2497 | Fortran main program. | |
2498 | (gen_subprogram_die): Adjust to new prototype for | |
2499 | add_calling_convention_attribute. | |
2500 | ||
2501 | 2007-11-03 Dorit Nuzman <dorit@il.ibm.com> | |
2502 | ||
2503 | PR tree-optimization/33987 | |
2504 | * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert. | |
2505 | Fix indentation. | |
2506 | (vectorizable_reduction): Add type check. | |
2507 | ||
2508 | 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
2509 | ||
2510 | PR c/29062 | |
2511 | * c-parser.c (c_parser_statement_after_labels): Error if a | |
2512 | declaration is parsed after a label. | |
2513 | ||
2514 | 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com> | |
2515 | ||
2516 | PR debug/33921 | |
2517 | * reorg.c (emit_delay_sequence): Do not clear the locator on | |
2518 | the jump instruction. | |
2519 | ||
2520 | 2007-11-03 Jakub Jelinek <jakub@redhat.com> | |
2521 | ||
2522 | PR middle-end/33670 | |
2523 | * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the | |
2524 | current sched region. | |
2525 | ||
2526 | 2007-11-02 Jakub Jelinek <jakub@redhat.com> | |
2527 | ||
2528 | * config/ia64/ia64.c (struct reg_write_state): Change into | |
2529 | unsigned short bitfields rather than unsigned int, decrease | |
2530 | first_pred to just 10 bits. | |
2531 | (rws_insn): Change into a bitmap or if not ENABLE_CHECKING | |
2532 | into two char array. | |
2533 | (rws_insn_set, rws_insn_test): New functions. | |
2534 | (in_safe_group_barrier): New variable. | |
2535 | (rws_update): Remove first argument, always set rws_sum array. | |
2536 | (rws_access_regno): Use rws_insn_set macro. Only call rws_update | |
2537 | or update rws_sum if !in_safe_group_barrier, adjust rws_update args. | |
2538 | (rtx_needs_barrier): Use rws_insn_test macro. | |
2539 | (safe_group_barrier_needed): Don't save/restore rws_sum array, | |
2540 | instead set/clear in_safe_group_barrier flag. | |
2541 | ||
2542 | 2007-11-02 Bob Wilson <bob.wilson@acm.org> | |
2543 | ||
2544 | * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a | |
2545 | REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack | |
2546 | pointer or frame pointer. | |
2547 | * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete. | |
2548 | (MUST_USE_SJLJ_EXCEPTIONS): Define. | |
2549 | (DWARF2_UNWIND_INFO): Define. | |
2550 | (INCOMING_RETURN_ADDR_RTX): Define. | |
2551 | (DWARF_FRAME_RETURN_COLUMN): Define. | |
2552 | ||
2553 | 2007-11-02 Tom Tromey <tromey@redhat.com> | |
2554 | ||
2555 | * varpool.c (dump_varpool): Use 'next', not 'next_needed' when | |
2556 | traversing pool. | |
2557 | ||
2558 | 2007-11-02 Diego Novillo <dnovillo@google.com> | |
2559 | ||
2560 | * langhooks.h (struct lang_hooks_for_callgraph): Remove third | |
2561 | argument from function pointer ANALYZE_EXPR. Update all users. | |
2562 | * cgraph.c (debug_cgraph_node): New. | |
2563 | (debug_cgraph): New. | |
2564 | ||
2565 | 2007-11-02 Jakub Jelinek <jakub@redhat.com> | |
2566 | ||
2567 | PR rtl-optimization/33648 | |
2568 | * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of | |
2569 | the newly created basic block. | |
2570 | ||
2571 | 2007-11-01 Richard Guenther <rguenther@suse.de> | |
2572 | ||
2573 | * ggc-page.c (extra_order_size_tab): Add bitmap_head size. | |
2574 | ||
2575 | 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com> | |
2576 | ||
2577 | PR rtl-optimization/33828 | |
2578 | * gcse.c (compute_code_hoist_vbeinout): Fix order of computation | |
2579 | of VBEIN and VBEOUT. | |
2580 | ||
2581 | 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr> | |
2582 | ||
2583 | * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks. | |
2584 | * sched-rgn.c (compute_trg_info): Zero 'el' local variable. | |
2585 | * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable. | |
2586 | ||
2587 | 2007-11-01 Nathan Sidwell <nathan@codesourcery.com> | |
2588 | ||
2589 | * gcc.c (getenv_spec_function): Escape the environment variable's | |
2590 | value. | |
2591 | ||
2592 | 2007-11-01 Janis Johnson <janis187@us.ibm.com> | |
2593 | ||
2594 | * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps, | |
2595 | show that CSE means common subexpression elimination. Change wording | |
2596 | for -fsee and define LCM. Remove capitalization of optimizations | |
2597 | for -ftree-reassoc, -ftree-pre, and -ftree-fre. | |
2598 | ||
2599 | 2007-11-01 Janis Johnson <janis187@us.ibm.com> | |
2600 | ||
2601 | PR testsuite/25352 | |
2602 | * doc/sourcebuild.texi (Test Directives): Document that xfail | |
2603 | has no effect for dg-do except when dg-do-what is "run". | |
2604 | ||
2605 | 2007-11-01 Tom Tromey <tromey@redhat.com> | |
2606 | ||
2607 | * c-decl.c (grokdeclarator): Set decl source locations. | |
2608 | * c-parser.c (c_parser_enum_specifier): Set location. | |
2609 | (c_parser_struct_or_union_specifier): Likewise. | |
2610 | ||
2611 | 2007-11-01 Tom Tromey <tromey@redhat.com> | |
2612 | ||
2613 | * print-tree.c (print_node): Print column number. | |
2614 | ||
2615 | 2007-11-01 Jakub Jelinek <jakub@redhat.com> | |
2616 | ||
2617 | PR debug/33537 | |
2618 | * dwarf2out.c (gen_formal_parameter_die, gen_variable_die, | |
2619 | gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type | |
2620 | rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl). | |
2621 | ||
2622 | PR rtl-optimization/33673 | |
2623 | * gcse.c (cprop_jump): If a conditional jump has been optimized | |
2624 | into unconditional jump, make the remaining normal edge fallthru | |
2625 | and delete the jump insn. | |
2626 | ||
2627 | 2007-11-01 Ben Elliston <bje@au.ibm.com> | |
2628 | ||
2629 | * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment. | |
2630 | (set_mem_attrs_from_reg): Likewise. | |
2631 | ||
2632 | 2007-11-01 Michael Matz <matz@suse.de> | |
2633 | ||
2634 | PR tree-optimization/33961 | |
2635 | * tree-ssa-phiopt.c (struct name_to_bb.store): New member. | |
2636 | (name_to_bb_hash, name_to_bb_eq): Consider and check it. | |
2637 | (add_or_mark_expr): New argument 'store', using it to search | |
2638 | the hash table. | |
2639 | (nt_init_block): Adjust calls to add_or_mark_expr. | |
2640 | ||
2641 | 2007-10-31 Jakub Jelinek <jakub@redhat.com> | |
2642 | ||
2643 | PR target/31507 | |
2644 | * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints | |
2645 | for the first push_operand. | |
2646 | ||
2647 | 2007-10-31 Revital Eres <eres@il.ibm.com> | |
2648 | ||
2649 | * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf, | |
2650 | reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf, | |
2651 | vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf, | |
2652 | movmisalignv2sf, vcondv2sf): New. | |
2653 | (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF, | |
2654 | UNSPEC_EXTODD_V2SF): Define new constants. | |
2655 | * config/rs6000/rs6000-protos.h (paired_expand_vector_move, | |
2656 | paired_emit_vector_cond_expr): New. | |
2657 | * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define. | |
2658 | * config/rs6000/rs6000.c (paired_expand_vector_move, | |
2659 | paired_emit_vector_cond_expr, paired_emit_vector_compare): | |
2660 | New functions. | |
2661 | * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option. | |
2662 | ||
2663 | 2007-10-31 Sebastian Pop <sebastian.pop@amd.com> | |
2664 | ||
2665 | PR tree-optimization/32377 | |
2666 | * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it | |
2667 | work also for unknown number of iterations. | |
2668 | (analyze_subscript_affine_affine): Clean up. Don't fail when the | |
2669 | number of iterations is not known. | |
2670 | ||
2671 | 2007-10-31 Richard Guenther <rguenther@suse.de> | |
2672 | ||
2673 | PR middle-end/33779 | |
2674 | * fold-const.c (extract_muldiv_1): Make sure to not introduce | |
2675 | new undefined integer overflow. | |
2676 | (fold_binary): Avoid useless conversion. | |
2677 | ||
2678 | 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk> | |
2679 | ||
2680 | PR target/33948 | |
2681 | * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check. | |
2682 | ||
2683 | 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com> | |
2684 | ||
2685 | * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp. | |
2686 | ||
2687 | * config/s390/s390.c: (override_options): Replace | |
2688 | -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp. | |
2689 | * config/s390/s390.opt: Likewise. | |
2690 | * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT | |
2691 | definition. | |
2692 | ||
2693 | 2007-10-30 Janis Johnson <janis187@us.ibm.com> | |
2694 | ||
2695 | * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops. | |
2696 | ||
2697 | 2007-10-30 Janis Johnson <janis187@us.ibm.com> | |
2698 | ||
2699 | * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of | |
2700 | optimization options. | |
2701 | (Optimize Options): Add -fdce and -fdse to the list of optimizations | |
2702 | enabled by -O. Document -fdce and -fdse. | |
2703 | ||
2704 | 2007-10-30 Jakub Jelinek <jakub@redhat.com> | |
2705 | ||
2706 | PR c++/33709 | |
2707 | * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR, | |
2708 | convert second operand of COMPOUND_EXPR to the original type of | |
2709 | that argument. | |
2710 | ||
2711 | 2007-10-30 Richard Guenther <rguenther@suse.de> | |
2712 | ||
2713 | * tree-ssa-operands.c (add_vars_for_offset): Fix exit test | |
2714 | of loop adding SFTs as virtual operands. | |
2715 | ||
2716 | 2007-10-30 Richard Guenther <rguenther@suse.de> | |
2717 | ||
2718 | * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies. | |
2719 | ||
2720 | 2007-10-29 Dorit Nuzman <dorit@il.ibm.com> | |
2721 | ||
2722 | PR tree-optimization/32893 | |
2723 | * tree-vectorize.c (vect_can_force_dr_alignment_p): Check | |
2724 | STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY. | |
2725 | ||
2726 | 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
2727 | ||
2728 | * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and | |
2729 | x86_64 versions. | |
2730 | (sub_ddmmss): Likewise. | |
2731 | (umul_ppmm): Likewise. | |
2732 | (udiv_qrnnd): Likewise. | |
2733 | ||
2734 | 2007-10-29 Janis Johnson <janis187@us.ibm.com> | |
2735 | ||
2736 | PR testsuite/24841 | |
2737 | * doc/sourcebuild.texi (Test Directives): Document that dg-require | |
2738 | directives must come before dg-additional-sources. | |
2739 | ||
2740 | 2007-10-29 Jakub Jelinek <jakub@redhat.com> | |
2741 | ||
2742 | PR tree-optimization/33723 | |
2743 | * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or | |
2744 | MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source. | |
2745 | ||
2746 | 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk> | |
2747 | ||
2748 | PR tree-optimization/33614 | |
2749 | * gimplify.c (gimplify_init_constructor): Gimplify vector constructors | |
2750 | if they can't be reduced to VECTOR_CSTs and aren't legitimate | |
2751 | initializer constants. | |
2752 | ||
2753 | 2007-10-29 Richard Guenther <rguenther@suse.de> | |
2754 | ||
2755 | PR tree-optimization/33870 | |
2756 | * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter. | |
2757 | (add_virtual_operand): Do not recurse into MPTs looking for pointed-to | |
2758 | SFTs. | |
2759 | ||
2760 | 2007-10-29 Richard Guenther <rguenther@suse.de> | |
2761 | ||
2762 | * passes.c (init_optimization_passes): Exchange store_copy_prop | |
2763 | with copy_prop. | |
2764 | * tree-pass.h (pass_store_copy_prop): Remove. | |
2765 | * tree-ssa-copy.c (do_store_copy_prop): Remove. | |
2766 | (stmt_may_generate-copy): Do not handle store_copy_prop. | |
2767 | (get_copy_of_val): Likewise. | |
2768 | (set_copy_of_val): Likewise. | |
2769 | (copy_prop_visit_assignment): Likewise. | |
2770 | (copy_prop_visit_stmt): Likewise. | |
2771 | (copy_prop_visit_phi_node): Likewise. | |
2772 | (init_copy_prop): Likewise. | |
2773 | (execute_copy_prop): Likewise. | |
2774 | (do_copy_prop): Remove. | |
2775 | (gate_store_copy_prop): Likewise. | |
2776 | (store_copy_prop): Likewise. | |
2777 | (pass_store_copy_prop): Likewise. | |
2778 | (pass_copy_prop): Call execute_copy_prop. | |
2779 | * opts.c (decode_options): Do not set flag_tree_store_copy_prop. | |
2780 | * common.opt (ftree-store-copy-prop): Mark obsolete. | |
2781 | * doc/invoke.texi (ftree-store-copy-prop): Remove documentation. | |
2782 | ||
2783 | 2007-10-29 Ian Lance Taylor <iant@google.com> | |
2784 | ||
2785 | * ifcvt.c (noce_can_store_speculate_p): New static function. | |
2786 | (noce_process_if_block): Call it. | |
2787 | (if_convert): Remove recompute_dominance parameter. Change all | |
2788 | callers. | |
2789 | ||
2790 | 2007-10-29 Richard Guenther <rguenther@suse.de> | |
2791 | ||
2792 | * tree-flow-inline.h (get_subvar_at): Use binary search. | |
2793 | (get_first_overlapping_subvar): New function to binary search | |
2794 | for the first overlapping subvar. | |
2795 | * tree-ssa-operands.c (add_vars_for_offset): Strip down to | |
2796 | just handle adding subvars for a pointed-to subvar. Optimize | |
2797 | and use get_first_overlapping_subvar. | |
2798 | (add_vars_for_bitmap): Fold into single caller. | |
2799 | (add_virtual_operand): Streamline, inherit add_vars_for_bitmap | |
2800 | and non pointed-to bits of add_vars_for_offset. | |
2801 | ||
2802 | 2007-10-29 Revital Eres <eres@il.ibm.com> | |
2803 | ||
2804 | * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem. | |
2805 | ||
2806 | 2007-10-29 Razya Ladelsky <razya@il.ibm.com> | |
2807 | Zdenek Dvorak <ook@ucw.cz> | |
2808 | ||
2809 | OMP_ATOMIC Changes, | |
2810 | reduction support for automatic parallelization. | |
2811 | ||
2812 | * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD, | |
2813 | OMP_ATOMIC_STORE. | |
2814 | * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o | |
2815 | * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD | |
2816 | and OMP_ATOMIC_STORE. | |
2817 | * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. | |
2818 | * gimple-low.c (lower_stmt): Same. | |
2819 | * gimplify.c (gimplify_expr): Same. | |
2820 | (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline, | |
2821 | gimplify_omp_atomic_mutex): Remove. | |
2822 | (gimplify_omp_atomic): Change it to simply gimplify the | |
2823 | statement instead of expanding it. | |
2824 | * omp-low.c: Add includes to optabs.h, cfgloop.h. | |
2825 | (expand_omp_atomic, expand_omp_atomic_pipeline, | |
2826 | goa_stabilize_expr, expand_omp_atomic_mutex, | |
2827 | expand_omp_atomic_fetch_op): New functions to implement | |
2828 | expansion of OMP_ATOMIC. | |
2829 | (expand_omp, build_omp_regions_1): Add support for | |
2830 | OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE. | |
2831 | * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD, | |
2832 | OMP_ATOMIC_STORE. | |
2833 | * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD, | |
2834 | OMP_ATOMIC_STORE. | |
2835 | * tree-parloops.c: add include to tree-vectorizer.h. | |
2836 | (reduction_info): New structure for reduction. | |
2837 | (reduction_list): New list to represent list of reductions per loop. | |
2838 | (struct data_arg): New helper structure for reduction. | |
2839 | (reduction_info_hash, reduction_info_eq, reduction_phi, | |
2840 | initialize_reductions, create_call_for_reduction, | |
2841 | create_phi_for_local_result, create_call_for_reduction_1, | |
2842 | create_loads_for_reductions, create_final_loads_for_reduction): | |
2843 | New functions. | |
2844 | (loop_parallel_p): Identify reductions, add reduction_list parameter. | |
2845 | (separate_decls_in_loop_name): Support reduction variables. | |
2846 | (separate_decls_in_loop): Add reduction_list and ld_st_data arguments, | |
2847 | call create_loads_for_reduction for each reduction. | |
2848 | (canonicalize_loop_ivs): Identify reductions, add reduction_list | |
2849 | parameter. | |
2850 | (transform_to_exit_first_loop): Add reduction support, add | |
2851 | reduction_list parameter. | |
2852 | (gen_parallel_loop): Add reduction_list parameter. Add call | |
2853 | separate_decls_in_loop with | |
2854 | the new argument. Traverse reductions and call | |
2855 | initialize_reductions, create_call_for_reduction. | |
2856 | (parallelize_loops): Create and delete the reduction list. | |
2857 | (add_field_for_name): Change use of data parameter. Add fields for | |
2858 | reductions. | |
2859 | * tree-vectorizer.h (vect_analyze_loop_form): Add declaration. | |
2860 | * tree-vect-analyze.c (vect_analyze_loop_form): export it. | |
2861 | * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. | |
2862 | * tree-inline.c (estimate_num_insns_1): add cases for | |
2863 | OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. | |
2864 | * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. | |
2865 | * tree-ssa-operands.c (get_addr_dereference_operands): | |
2866 | New function. Subroutine of get_indirect_ref_operands. | |
2867 | (get_indirect_ref_operands): Call get_addr_dereference_operands. | |
2868 | (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. | |
2869 | ||
2870 | ||
2871 | 2007-10-29 Hans-Peter Nilsson <hp@axis.com> | |
2872 | ||
2873 | * config/cris/cris.c: Include df.h. | |
2874 | (cris_address_cost): Add gcc_assert for canonicalization | |
2875 | assumptions. For PLUS with MULT or register, correct | |
2876 | test for register in other arm. Tweak comments. | |
2877 | ||
2878 | 2007-10-28 Richard Guenther <rguenther@suse.de> | |
2879 | ||
2880 | * tree-ssa-operands.c (add_vars_for_offset): Add parameter | |
2881 | telling if the var is to be treated as points-to location. | |
2882 | (add_vars_for_bitmap): Pass true to add_vars_for_offset. | |
2883 | (add_virtual_operand): Only recurse into MPTs if aliases | |
2884 | is from a NMT. | |
2885 | ||
2886 | 2007-10-28 Richard Guenther <rguenther@suse.de> | |
2887 | ||
2888 | * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up. | |
2889 | (add_vars_for_bitmap): Do not recurse further. Only add vars | |
2890 | for pointed-to SFTs. | |
2891 | (add_virtual_operand): Re-instantiate loop to add operands for | |
2892 | aliases. Recurse into MPTs. | |
2893 | (get_indirect_ref_operands): If we fall back to use a pointers | |
2894 | SMT, make sure to not prune based on the access offset and size. | |
2895 | ||
2896 | 2007-10-28 Andrew Pinski <pinskia@gmail.com> | |
2897 | ||
2898 | PR tree-opt/33589 | |
2899 | * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup | |
2900 | the eh information on the statement. | |
2901 | ||
2902 | 2007-10-28 Richard Guenther <rguenther@suse.de> | |
2903 | ||
2904 | * tree-flow.h (subvar_t): Make it a VEC. | |
2905 | (struct subvar): Remove. | |
2906 | (struct var_ann_d): Use VEC(tree,gc) to store subvars. | |
2907 | * tree-flow-inline.h (get_subvar_at): Adjust iterators over | |
2908 | variable subvars. | |
2909 | * tree-into-ssa.c (mark_sym_for_renaming): Likewise. | |
2910 | * tree-nrv.c (dest_safe_for_nrv_p): Likewise. | |
2911 | * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise. | |
2912 | (set_initial_properties): Likewise. | |
2913 | (setup_pointers_and_addressables): Likewise. | |
2914 | (new_type_alias): Likewise. | |
2915 | (create_overlap_variables_for): Likewise. | |
2916 | * tree-dfa.c (dump_subvars_for): Likewise. | |
2917 | * tree-ssa-operands.c (add_vars_for_offset): Likewise. | |
2918 | (get_expr_operands): Likewise. | |
2919 | (add_to_addressable_set): Likewise. | |
2920 | * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. | |
2921 | ||
2922 | 2007-10-28 Uros Bizjak <ubizjak@gmail.com> | |
2923 | ||
2924 | PR tree-optimization/33920 | |
2925 | * tree-if-conv.c (tree_if_conversion): Force predicate of single | |
2926 | successor bb to true when predecessor bb has NULL predicate. | |
2927 | (find_phi_replacement_condition): Assert that tmp_cond is non-null. | |
2928 | ||
2929 | 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk> | |
2930 | ||
2931 | * config/mips/mips.md: Add combiner patterns for DImode extensions | |
2932 | of HImode and QImode truncations. Reformat HImode <- QImode pattern | |
2933 | for consistency. | |
2934 | ||
2935 | 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk> | |
2936 | ||
2937 | PR target/33895 | |
2938 | * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED. | |
2939 | ||
2940 | 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com> | |
2941 | ||
2942 | * dce.c (delete_unmarked_insns): Just delete the RETVAL and | |
2943 | LIBCALL notes if they are about to be moved to the same insn. | |
2944 | ||
2945 | 2007-10-27 Richard Guenther <rguenther@suse.de> | |
2946 | ||
2947 | PR tree-optimization/33870 | |
2948 | * tree-ssa-operands.c (add_vars_for_offset): Reduce code | |
2949 | duplication. Remove redundant call to access_can_touch_variable. | |
2950 | (add_vars_for_bitmap): New helper for recursing over MPT contents. | |
2951 | (add_virtual_operand): Use it. | |
2952 | ||
2953 | 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
2954 | ||
2955 | PR fortran/31608 | |
2956 | * pa.h (ASM_PN_FORMAT): Delete define. | |
2957 | ||
2958 | 2007-10-26 Janis Johnson <janis187@us.ibm.com> | |
2959 | ||
2960 | * doc/invoke.texi (Option Summary, optimizations): Remove | |
2961 | -fbounds-check. Add -fassociative-math, -freciprocal-math, | |
2962 | -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to | |
2963 | -fsplit-wide-types to match later entry. Break up a long line. | |
2964 | (Option Summary, code gen options) Add -fno-stack-limit. Add | |
2965 | missing @gol to the end of a line. | |
2966 | (Optimization Options): Remove -fbounds-check, which is also | |
2967 | documented under Code Generation Options. Remove =n from | |
2968 | index entry for -ftree-parallelize-loops. Change -fno-cprop-registers | |
2969 | to -fcprop-registers to match other options, and say when it is | |
2970 | enabled rather than disabled. Remove extra index entry for | |
2971 | -fno-cx-limited-range. Add index entries for -fstack-protector | |
2972 | and -fstack-protector-all. | |
2973 | (Code Gen Options): Add index entry for -ftls-model. | |
2974 | ||
2975 | 2007-10-26 Anatoly Sokolov <aesok@post.ru> | |
2976 | ||
2977 | * config/avr/avr.c (avr_OS_task_function_p): Add new function. | |
2978 | (avr_regs_to_save): Handle functions with 'OS_task' attribute. | |
2979 | (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue, | |
2980 | expand_epilogue, output_movhi): Don't handle 'main' function. | |
2981 | (avr_attribute_table): Add 'OS_task' function attribute. | |
2982 | * config/avr/avr.h (machine_function): Remove 'is_main' field, add | |
2983 | 'is_OS_task' field. | |
2984 | * config/avr/avr.md (return_from_main_epilogue): Remove insn. | |
2985 | (return_from_epilogue, return_from_interrupt_epilogue): Don't handle | |
2986 | 'main' function. | |
2987 | * config/avr/avr.opt (minit-stack): Remove. | |
2988 | ||
2989 | 2007-10-26 Eric Botcazou <ebotcazou@adacore.com> | |
2990 | ||
2991 | * tree-nested.c (get_trampoline_type): Fix thinko. | |
2992 | ||
2993 | 2007-10-26 Douglas Gregor <doug.gregor@gmail.com> | |
2994 | ||
2995 | PR c++/33601 | |
2996 | * tree.c (build_offset_type): Build canonical type based on the | |
2997 | TYPE_MAIN_VARIANT of the base type. | |
2998 | ||
2999 | 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com> | |
3000 | ||
3001 | * reorg.c (emit_delay_sequence): Move insn locator from the | |
3002 | first insn to the sequence. | |
3003 | ||
3004 | 2007-10-26 Samuel Tardieu <sam@rfc1149.net> | |
3005 | ||
3006 | * ipa-pure-const.c (check_decl): Return immediately when | |
3007 | pure_const_state has been set to IPA_NEITHER. | |
3008 | ||
3009 | 2007-10-25 Ira Rosen <irar@il.ibm.com> | |
3010 | ||
3011 | PR tree-optimization/33833 | |
3012 | * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR | |
3013 | and convert init to sizetype in inner_base construction. | |
3014 | ||
3015 | 2007-10-25 Richard Guenther <rguenther@suse.de> | |
3016 | ||
3017 | * tree-flow.h (mem_sym_stats): Remove. | |
3018 | (dump_mem_sym_stats_for_var): Declare. | |
3019 | * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var. | |
3020 | (mem_sym_stats): Move ... | |
3021 | * tree-ssa-alias.c (mem_sym_stats): ... here and make it static. | |
3022 | (mem_sym_score): Rename from ... | |
3023 | (pscore): ... this. Remove. | |
3024 | (dump_mem_sym_stats_for_var): New function. Dump the score, but | |
3025 | not the frequencies. | |
3026 | (compare_mp_info_entries): Make sort stable by disambiguating | |
3027 | on DECL_UID. | |
3028 | ||
3029 | 2007-10-25 Ira Rosen <irar@il.ibm.com> | |
3030 | ||
3031 | PR tree-optimization/33866 | |
3032 | * tree-vect-transform.c (vectorizable_store): Check operands of all | |
3033 | the stmts in the group of strided accesses. Get def stmt type for each | |
3034 | store in the group and pass it to vect_get_vec_def_for_stmt_copy (). | |
3035 | ||
3036 | 2007-10-25 Uros Bizjak <ubizjak@gmail.com> | |
3037 | ||
3038 | * config/i386/constraints.md (Y0): Rename register constraint to Yz. | |
3039 | (Yt): Rename register constraint to Y2. | |
3040 | * config/i386/sse.md: Use renamed register constraints. | |
3041 | * config/i386/mmx.md: Ditto. | |
3042 | * config/i386/i386.md: Ditto. | |
3043 | ||
3044 | 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
3045 | ||
3046 | * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint. | |
3047 | ||
3048 | 2007-10-24 Chao-ying Fu <fu@mips.com> | |
3049 | ||
3050 | * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or | |
3051 | DW_ATE_signed_fixed to describe FIXED_POINT_TYPE. | |
3052 | ||
3053 | 2007-10-24 Samuel Tardieu <sam@rfc1149.net> | |
3054 | Olga Golovanevsky <olga@il.ibm.com> | |
3055 | ||
3056 | * ipa-struct-reorg.c (replace_field_acc): Make it clear to | |
3057 | the compiler that wr.wrap and wr.domain are initialized in | |
3058 | any case. | |
3059 | ||
3060 | 2007-10-24 Samuel Tardieu <sam@rfc1149.net> | |
3061 | ||
3062 | * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC | |
3063 | to print gcov_type values. | |
3064 | ||
3065 | 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com> | |
3066 | ||
3067 | * config/avr/avr.h: Do not include progmem_section definition when | |
3068 | building with IN_TARGET_LIBS. | |
3069 | ||
3070 | 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk> | |
3071 | ||
3072 | PR target/33755 | |
3073 | * config/mips/mips.c (mips_lo_sum_offset): New structure. | |
3074 | (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq) | |
3075 | (mips_lo_sum_offset_lookup, mips_record_lo_sum) | |
3076 | (mips_orphaned_high_part_p: New functions. | |
3077 | (mips_avoid_hazard): Don't check INSN_P here. | |
3078 | (mips_avoid_hazards): Rename to... | |
3079 | (mips_reorg_process_insns): ...this. Cope with | |
3080 | !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations, | |
3081 | or turn them into nops. | |
3082 | (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to | |
3083 | dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns. | |
3084 | (mips_set_mips16_mode): Don't set flag_delayed_branch here. | |
3085 | (mips_override_options): Set flag_delayed_branch to 0. | |
3086 | ||
3087 | 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk> | |
3088 | ||
3089 | * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe | |
3090 | MIPS-specific implementation details. | |
3091 | (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro. | |
3092 | (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise. | |
3093 | (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD | |
3094 | for targets with movmemsi. | |
3095 | (MOVE_BY_PIECES_P): Define. | |
3096 | * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete. | |
3097 | (mips_block_move_loop): Add a bytes_per_iter argument. | |
3098 | (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT. | |
3099 | Update call to mips_block_move_loop. | |
3100 | ||
3101 | 2007-10-24 Michael Matz <matz@suse.de> | |
3102 | ||
3103 | PR debug/33868 | |
3104 | * var-tracking.c (variable_union): Don't break after one loop | |
3105 | iteration but only when a difference is found. | |
3106 | (dump_variable): Also print DECL_UID. | |
3107 | ||
3108 | 2007-10-24 Olga Golovanevsky <olga@il.ibm.com> | |
3109 | ||
3110 | * ipa-type-escape.h: Expose function | |
3111 | is_array_access_through_pointer_and_index. | |
3112 | * ipa-type-escape.c | |
3113 | (is_array_access_through_pointer_and_index): | |
3114 | Add three new parameters. Add support of | |
3115 | POINTER_PLUS_EXPR tree code. | |
3116 | ||
3117 | 2007-10-24 Olga Golovanevsky <olga@il.ibm.com> | |
3118 | ||
3119 | * ipa-struct-reorg.c, ipa-struct-reorg.h: New files. | |
3120 | * tree-pass.h: Add pass_ipa_struct_reorg. | |
3121 | * common.opt: Add ipa-struct-reorg flag. | |
3122 | * Makefile.in: Add ipa-strcut-reorg.o compilation. | |
3123 | * passes.c: Add pass pass_ipa_struct_reorg. | |
3124 | * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO. | |
3125 | * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO. | |
3126 | ||
3127 | 2007-10-24 Ira Rosen <irar@il.ibm.com> | |
3128 | ||
3129 | PR tree-optimization/33804 | |
3130 | * tree-vect-transform.c (vectorizable_operation): Remove the | |
3131 | checks that the vectorization is worthwhile from the transformation | |
3132 | phase. | |
3133 | ||
3134 | 2007-10-24 Ira Rosen <irar@il.ibm.com> | |
3135 | ||
3136 | * tree-vect-analyze.c (vect_build_slp_tree): Return false if | |
3137 | vectype cannot be determined for the scalar type. | |
3138 | (vect_analyze_slp_instance): Likewise. | |
3139 | * tree-vect-transform.c (vect_model_reduction_cost): Change the | |
3140 | return type to bool. Return false if vectype cannot be determined | |
3141 | for the scalar type. | |
3142 | (vect_get_constant_vectors): Return false if vectype cannot be | |
3143 | determined for the scalar type. | |
3144 | (get_initial_def_for_induction, vect_get_vec_def_for_operand, | |
3145 | get_initial_def_for_reduction, vect_create_epilog_for_reduction, | |
3146 | vectorizable_reduction): Likewise. | |
3147 | ||
3148 | 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org> | |
3149 | ||
3150 | * config.gcc: For a FreeBSD target, parse the value of ${target} | |
3151 | to determine the value of FBSD_MAJOR, instead of adding an | |
3152 | explicit check for every possible FreeBSD major version. | |
3153 | ||
3154 | 2007-10-23 Uros Bizjak <ubizjak@gmail.com> | |
3155 | ||
3156 | PR rtl-optimization/33846 | |
3157 | * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes. | |
3158 | ||
3159 | 2007-10-23 Dorit Nuzman <dorit@il.ibm.com> | |
3160 | ||
3161 | PR tree-optimization/33860 | |
3162 | * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow | |
3163 | interleaved accesses in case the dr is inside the inner-loop during | |
3164 | outer-loop vectorization. | |
3165 | ||
3166 | 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr> | |
3167 | ||
3168 | * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry. | |
3169 | Document MEM_POINTER. Replace mentions of "integrated" | |
3170 | field with "return_val". Delete outdated stuff. | |
3171 | ||
3172 | 2007-10-23 David Edelsohn <edelsohn@gnu.org> | |
3173 | ||
3174 | * config/rs6000/rs6000.c (rs6000_override_options): Set | |
3175 | rs6000_altivec_abi on AIX. | |
3176 | (conditional_register_usage): Set VR20:31 fixed on AIX. | |
3177 | ||
3178 | 2007-10-23 Richard Guenther <rguenther@suse.de> | |
3179 | ||
3180 | * alias.c (get_alias_set): For INDIRECT_REFs, deal with | |
3181 | SSA_NAME pointers. | |
3182 | ||
3183 | 2007-10-22 Seongbae Park <seongbae.park@gmail.com> | |
3184 | David S. Miller <davem@davemloft.net> | |
3185 | ||
3186 | * df-scan.c (df_get_call_refs): Mark global registers as both a | |
3187 | DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF. | |
3188 | ||
3189 | 2007-10-22 Dorit Nuzman <dorit@il.ibm.com> | |
3190 | ||
3191 | PR tree-optimization/33834 | |
3192 | PR tree-optimization/33835 | |
3193 | * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE | |
3194 | stmts need to be checked for success seperately. | |
3195 | * tree-vect-transform.c (vectorizable_call, vectorizable_conversion): | |
3196 | Remove the check that stmt is not LIVE. | |
3197 | (vectorizable_assignment, vectorizable_induction): Likewise. | |
3198 | (vectorizable_operation, vectorizable_type_demotion): Likewise. | |
3199 | (vectorizable_type_promotion, vectorizable_load, vectorizable_store): | |
3200 | Likewise. | |
3201 | (vectorizable_live_operation): Check that op is not NULL. | |
3202 | ||
3203 | 2007-10-22 Janis Johnson <janis187@us.ibm.com> | |
3204 | ||
3205 | * doc/invoke.texi (Optimization Options): In the summary, show | |
3206 | that the value for options -falign-jumps, -falign-labels, | |
3207 | -falign-loops, -falign-functions, -fsched-stalled-insns, and | |
3208 | -fsched-stalled-insns-dep is optional. In the summary, show that | |
3209 | -fsched-stalled-insns takes an optional argument and that | |
3210 | -fparallelize-loops takes an argument. Add opindex for several | |
3211 | optimization options, and fix typos in the opindex commands for | |
3212 | several others. In the descriptions for -fsched-stalled-insns | |
3213 | and -fsched-stalled-insns-dep, show the options with and without | |
3214 | values. | |
3215 | ||
3216 | 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com> | |
3217 | ||
3218 | * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never | |
3219 | produced. | |
3220 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
3221 | (CRT_BINUTILS_SPECS): Likewsie. | |
3222 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
3223 | ||
3224 | 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr> | |
3225 | ||
3226 | PR rtl-optimization/33644 | |
3227 | * cfgcleanup.c: Do not include dce.h. | |
3228 | * cfgrtl.c (delete_insn_chain_and_edges): Resurrect. | |
3229 | * combine.c (distribute_notes): Delete REG_LIBCALL_ID case. | |
3230 | * dce.c (something_changed): Delete. | |
3231 | (libcall_dead_p): New predicate. | |
3232 | (delete_unmarked_insns): Use it to delete dead libcalls. | |
3233 | Deal with REG_LIBCALL and REG_RETVAL notes. | |
3234 | (prescan_libcall_for_dce): New function. | |
3235 | (prescan_insns_for_dce): Use it to deal with libcalls. | |
3236 | (mark_reg_dependencies): Do nothing special for libcalls. | |
3237 | (dce_process_block): Likewise. | |
3238 | (fast_dce): Delete unused local variable. | |
3239 | (run_fast_dce): Do not return a value. | |
3240 | * dce.h (struct df): Delete. | |
3241 | (run_fast_dce): Adjust prototype. | |
3242 | * optabs.c (libcall_id): Delete. | |
3243 | (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes. | |
3244 | (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes. | |
3245 | * reload1.c (reload): Delete REG_LIBCALL_ID case. | |
3246 | * rtl.h (delete_insn_chain_and_edges): Resurrect prototype. | |
3247 | * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL | |
3248 | notes instead of REG_LIBCALL_ID notes. | |
3249 | * reg-notes.def (LIBCALL_ID): Delete. | |
3250 | * Makefile.in (see.o): Add dce.h dependency. | |
3251 | (cfgcleanup.o): Remove dce.h dependency. | |
3252 | ||
3253 | 2007-10-22 Michael Matz <matz@suse.de> | |
3254 | ||
3255 | PR tree-optimization/33855 | |
3256 | * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE | |
3257 | and VECTOR_TYPE. | |
3258 | ||
3259 | 2007-10-22 Ira Rosen <irar@il.ibm.com> | |
3260 | ||
3261 | PR tree-optimization/33854 | |
3262 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Add | |
3263 | FLOAT_EXPR to the list of promotion operations. | |
3264 | ||
3265 | 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
3266 | ||
3267 | PR target/29473 | |
3268 | PR target/29493 | |
3269 | * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax. | |
3270 | (print_reg): Print register prefix only with AT&T asm syntax. | |
3271 | Support pc_rtx for RIP register. | |
3272 | (print_operand_address): Use print_reg()'s pc_rtx support for RIP | |
3273 | relative addressing. Always print segment register prefix with AT&T | |
3274 | asm syntax and never with Intel asm syntax. | |
3275 | (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. | |
3276 | Fix prefix for 16-byte XFmode operands. | |
3277 | (output_addr_const_extra): Support Intel asm syntax. | |
3278 | (x86_file_start): Don't use register prefix with Intel asm syntax. | |
3279 | * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo. | |
3280 | ("return_internal_long"): Fix Intel asm syntax output. | |
3281 | ("set_got_rex64"): Support Intel asm syntax. | |
3282 | ("set_rip_rex64"): Likewise. | |
3283 | ("set_got_offset_rex64"): Likewise. | |
3284 | ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm | |
3285 | syntax. | |
3286 | ("*tls_global_dynamic_64"): Likewise. | |
3287 | ("*tls_local_dynamic_base_64"): Likewise. | |
3288 | ("*load_tp_si")("*load_tp_di"): Likewise. | |
3289 | ("*add_tp_si")("*add_tp_di"): Likewise. | |
3290 | ("*tls_dynamic_lea_64"): Likewise. | |
3291 | ("*sibcall_value_1_rex64_v"): Likewise. | |
3292 | ("stack_tls_protect_set_si"): Likewise. | |
3293 | ("stack_tls_protect_set_di"): Likewise. | |
3294 | ("stack_tls_protect_test_si"): Likewise. | |
3295 | ("stack_tls_protect_test_di"): Likewise. | |
3296 | * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm | |
3297 | syntax output. | |
3298 | ("*movv2sf_internal_rex64"): Likewise. | |
3299 | * config/i386/cpuid.h (__cpuid): Support Intel asm syntax. | |
3300 | (__get_cpuid_max): Likewise. | |
3301 | ||
3302 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3303 | ||
3304 | * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give | |
3305 | the STRICT_P argument type "bool" rather than "int". | |
3306 | (mips_legitimate_address_p): Likewise. | |
3307 | (fp_register_operand, lo_operand): Delete. | |
3308 | (mips_subword): Give the HIGH_P argument type "bool" rather than "int". | |
3309 | (mips_emit_scc): Rename to... | |
3310 | (mips_expand_scc): ...this. | |
3311 | (gen_conditional_branch): Rename to... | |
3312 | (mips_expand_conditional_branch): ...this. | |
3313 | (gen_conditional_move): Rename to... | |
3314 | (mips_expand_conditional_move): ...this. | |
3315 | (mips_gen_conditional_trap): Rename to... | |
3316 | (mips_expand_conditional_trap): ...this and take an rtx code instead | |
3317 | of an operands array. | |
3318 | (mips_expand_call): Give the SIBCALL_P argument type "bool" | |
3319 | rather than "int". | |
3320 | (mips_emit_fcc_reload): Rename to... | |
3321 | (mips_expand_fcc_reload): ...this. | |
3322 | (init_cumulative_args): Rename to... | |
3323 | (mips_init_cumulative_args): ...this and remove the libname argument. | |
3324 | (function_arg_advance): Rename to... | |
3325 | (mips_function_arg_advance): ...this. | |
3326 | (function_arg): Rename to... | |
3327 | (mips_function_arg): ...this and use "rtx" instead of | |
3328 | "struct rtx_def *". | |
3329 | (function_arg_boundary): Rename to... | |
3330 | (mips_function_arg_boundary): ...this. | |
3331 | (mips_expand_unaligned_load): Rename to... | |
3332 | (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH | |
3333 | and BITPOS arguments type "HOST_WIDE_INT". | |
3334 | (mips_expand_unaligned_store): Rename to... | |
3335 | (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH | |
3336 | and BITPOS arguments type "HOST_WIDE_INT". | |
3337 | (override_options): Rename to... | |
3338 | (mips_override_options): ...this. | |
3339 | (print_operand): Rename to... | |
3340 | (mips_print_operand): ...this. | |
3341 | (print_operand_address): Rename to... | |
3342 | (mips_print_operand_address): ...this. | |
3343 | (mips_output_ascii): Remove the PREFIX argument. | |
3344 | (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" | |
3345 | rather than "int". | |
3346 | (mips_can_use_return_insn): Return a "bool" rather than an "int". | |
3347 | (mips_function_value): Remove the FUNC argument. Use "rtx" instead | |
3348 | of "struct rtx_def *". | |
3349 | (mips_secondary_reload_class): Give the IN_P argument type "bool" | |
3350 | rather than "int". | |
3351 | (build_mips16_call_stub): Delete. | |
3352 | (mips_store_data_bypass_p): Return a "bool" rather than an "int". | |
3353 | (mips_use_ins_ext_p): Give the second and third arguments type | |
3354 | "HOST_WIDE_INT" rather than "rtx". | |
3355 | * config/mips/mips.h: Update after the above changes. Tweak comments | |
3356 | and formatting. | |
3357 | (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument. | |
3358 | (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. | |
3359 | (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the | |
3360 | element type from "char" to "bool". | |
3361 | (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely) | |
3362 | (mips_cpu_info_table): Delete. | |
3363 | * config/mips/mips.md: Update after the above changes. Tweak some | |
3364 | formatting. | |
3365 | * config/mips/mips-ps-3d.md: Likewise. | |
3366 | * config/mips/mips.c: Tweak comments and formatting. | |
3367 | Use NULL-like macros rather than 0 in various places. | |
3368 | (mips_section_threshold): Rename to... | |
3369 | (mips_small_data_threshold): ...this and give it an unsigned type. | |
3370 | (num_source_filenames): Remove explicit initialization. | |
3371 | (sdb_label_count): Likewise. | |
3372 | (sym_lineno): Delete. | |
3373 | (set_noat): Make static. | |
3374 | (mips_branch_likely): Likewise, and give it type "bool". | |
3375 | (mips_isa_info): Rename to... | |
3376 | (mips_isa_option_info): ...this. | |
3377 | (mips_flag_delayed_branch): Rename to... | |
3378 | (mips_base_delayed_branch): ...this. | |
3379 | (mips_split_addresses): Delete. | |
3380 | (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the | |
3381 | element type from "char" to "bool". | |
3382 | (mips_regno_to_class): Add an explicit array size. | |
3383 | (mips16_flipper): Change from type "int" to type "bool". | |
3384 | (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check. | |
3385 | (mips_tls_operand_p): Rename to... | |
3386 | (mips_tls_symbol_p): ...this. | |
3387 | (mips_global_symbol_p): Remove redundant "const". | |
3388 | (mips_offset_within_alignment_p): Simplify. | |
3389 | (mips_regno_mode_ok_for_base_p): Change the name of the last argument | |
3390 | to STRICT_P and give it type bool. | |
3391 | (mips_valid_base_register_p): Likewise. | |
3392 | (mips_classify_address): Likewise. | |
3393 | (mips_legitimate_address_p): Likewise. | |
3394 | (mips16_unextended_reference_p): Take the offset as an | |
3395 | "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify. | |
3396 | (mips_const_insns): Use IN_RANGE. | |
3397 | (mips_force_temporary): Remove an unnecessary copy_rtx. | |
3398 | (mips16_gp_pseudo_reg): Simplify. | |
3399 | (mips_split_symbol): Remove an unnecessary copy_rtx. | |
3400 | (mips_legitimize_tls_address): Only create registers if we need them. | |
3401 | (mips_legitimize_address): Use mips_split_plus. | |
3402 | (mips_move_integer): Swap DEST and TEMP arguments. Rename local | |
3403 | variable COST to NUM_OPS. | |
3404 | (mips_legitimize_move): Use gen_lowpart. | |
3405 | (mips_rewrite_small_data): Rename the OP parameter to PATTERN. | |
3406 | (m16_check_op): Use IN_RANGE. | |
3407 | (mips_subword): Give the HIGH_P argument type "bool" rather than "int". | |
3408 | (mips_split_doubleword_move): Pass booleans to mips_subword. | |
3409 | (mips_output_move): Store the mode in a local variable. | |
3410 | Explicitly assert that this function does not deal with | |
3411 | MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of | |
3412 | cases more consistent. | |
3413 | (mips_relational_operand_ok_p): Rename to... | |
3414 | (mips_int_order_operand_ok_p): ...this. | |
3415 | (mips_canonicalize_comparison): Rename to... | |
3416 | (mips_canonicalize_int_order_test): ...this. | |
3417 | (mips_emit_int_relational): Rename to... | |
3418 | (mips_emit_int_order_test): ...this. Store the mode in a local | |
3419 | variable. | |
3420 | (mips_reverse_fp_cond_p): Rename to... | |
3421 | (mips_reversed_fp_cond): ...this. | |
3422 | (mips_emit_compare): Make the order of the statements more consistent. | |
3423 | (mips_emit_scc): Rename to... | |
3424 | (mips_expand_scc): ...this. | |
3425 | (gen_conditional_branch): Rename to... | |
3426 | (mips_expand_conditional_branch): ...this. | |
3427 | (gen_conditional_move): Rename to... | |
3428 | (mips_expand_conditional_move): ...this. Build the condition | |
3429 | separately from the main pattern. | |
3430 | (mips_gen_conditional_trap): Rename to... | |
3431 | (mips_expand_conditional_trap): ...this and take an rtx code instead | |
3432 | of an operands array. Simplify. | |
3433 | (init_cumulative_args): Rename to... | |
3434 | (mips_init_cumulative_args): ...this. Use memset rather than a | |
3435 | copy from a zeroed static. Use prototype_p and stdarg_p. | |
3436 | (mips_arg_info): Rename to... | |
3437 | (mips_get_arg_info): ...this and put the INFO argument first. | |
3438 | (function_arg): Rename to... | |
3439 | (mips_function_arg): ...this and use "rtx" instead of | |
3440 | "struct rtx_def *". Only split structures into chunks if | |
3441 | TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on | |
3442 | a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a | |
3443 | comparison with REAL_TYPE. Rename local variable REG to REGNO | |
3444 | and make it unsigned. | |
3445 | (function_arg_advance): Rename to... | |
3446 | (mips_function_arg_advance): ...this. | |
3447 | (function_arg_boundary): Rename to... | |
3448 | (mips_function_arg_boundary): ...this. | |
3449 | (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison | |
3450 | with MODE_INT. | |
3451 | (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a | |
3452 | comparison with REAL_TYPE. | |
3453 | (mips_function_value): Remove the FUNC argument. Rename local | |
3454 | variable UNSIGNEDP to UNSIGNED_P. | |
3455 | (mips_return_in_memory): Use IN_RANGE. | |
3456 | (mips_setup_incoming_varargs): Pass a boolean rather than an int | |
3457 | to FUNCTION_ARG_ADVANCE. | |
3458 | (mips_gimplify_va_arg_expr): Rename local variable INDIRECT | |
3459 | to INDIRECT_P. Remove a redundant mips_abi check. Only calculate | |
3460 | SIZE and RSIZE if needed. | |
3461 | (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool" | |
3462 | rather than "int". | |
3463 | (build_mips16_function_stub): Rename to... | |
3464 | (mips16_build_function_stub): ...this. | |
3465 | (build_mips16_call_stub): Rename to... | |
3466 | (mips16_build_call_stub): ...this. Make static, and return a | |
3467 | "bool" rather than an "int". Rename the ARG_SIZE argument to | |
3468 | ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give | |
3469 | it type "bool". Use "jr" rather than "j". Use XNEW. Simplify. | |
3470 | (mips_load_call_address): Give the SIBCALL_P argument type "bool" | |
3471 | rather than "int". | |
3472 | (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs | |
3473 | are not sibling ones. | |
3474 | (mips_emit_fcc_reload): Rename to... | |
3475 | (mips_expand_fcc_reload): ...this. | |
3476 | (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type | |
3477 | "HOST_WIDE_INT". | |
3478 | (mips_expand_unaligned_load): Rename to... | |
3479 | (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH | |
3480 | and BITPOS arguments type "HOST_WIDE_INT". Remove redundant | |
3481 | SUBREG_BYTE check. | |
3482 | (mips_expand_unaligned_store): Rename to... | |
3483 | (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH | |
3484 | and BITPOS arguments type "HOST_WIDE_INT". | |
3485 | (mips_use_ins_ext_p): Rename second and third arguments to WIDTH | |
3486 | and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx". | |
3487 | Use IN_RANGE. | |
3488 | (mips_init_split_addresses): Replace with... | |
3489 | (mips_split_addresses_p): ...this new function. | |
3490 | (mips_init_relocs): Check mips_split_addresses_p () rather than | |
3491 | mips_split_addresses. Always initialize mips_split_p with booleans. | |
3492 | (print_operand_reloc): Rename to... | |
3493 | (mips_print_operand_reloc): ...this. Use a gcc_assert rather than | |
3494 | a fatal_error. | |
3495 | (print_operand): Rename to... | |
3496 | (mips_print_operand): ...this. | |
3497 | (print_operand_address): Rename to... | |
3498 | (mips_print_operand_address): ...this. Use GP_REG_FIRST. | |
3499 | (mips_in_small_data_p): Simplify. | |
3500 | (mips_output_ascii): Remove the PREFIX argument and "register" | |
3501 | keywords. Use the STRING parameter directly and cast to | |
3502 | "unsigned char". | |
3503 | (mips16e_collect_argument_save_p): Use IN_RANGE. | |
3504 | (mips_function_has_gp_insn): Simplify. | |
3505 | (mips_set_return_address): Use BITSET_P. | |
3506 | (mips_restore_gp): Use a separate statement to pick the base | |
3507 | register. | |
3508 | (mips_output_function_prologue): Use a local FRAME variable. | |
3509 | (mips_save_reg): Pass booleans to mips_subword. | |
3510 | (mips_expand_prologue): Use a local FRAME variable. Use | |
3511 | cprestore_size to detect when .cprestore is needed. | |
3512 | (mips_restore_reg): Use GP_REG_FIRST. | |
3513 | (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" | |
3514 | rather than "int". Use local FRAME and REGNO variables. | |
3515 | (mips_can_use_return_insn): Return a "bool" rather than an "int". | |
3516 | (mips_secondary_reload_class): Give the IN_P argument type "bool" | |
3517 | rather than "int". | |
3518 | (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN. | |
3519 | (mips_store_data_bypass_p): Return a "bool" rather than an "int". | |
3520 | (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P. | |
3521 | (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P. | |
3522 | (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P. | |
3523 | (builtin_description): Rename to... | |
3524 | (mips_builtin_description): ...this. | |
3525 | (mips_bdesc): Rename to... | |
3526 | (mips_ps_bdesc): ...this. | |
3527 | (sb1_bdesc): Rename to... | |
3528 | (mips_sb1_bdesc): ...this. | |
3529 | (dsp_bdesc): Rename to... | |
3530 | (mips_dsp_bdesc): ...this. | |
3531 | (dsp_32only_bdesc): Rename to... | |
3532 | (mips_dsp_32only_bdesc): ...this. | |
3533 | (bdesc_map): Rename to... | |
3534 | (mips_bdesc_map): ...this. | |
3535 | (bdesc_arrays): Rename to... | |
3536 | (mips_bdesc_arrays): ...this. | |
3537 | (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO. | |
3538 | Tweak error message. | |
3539 | (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P. | |
3540 | Rename local variables I and J to OPNO and ARGNO respectively. | |
3541 | Assert that the number of arguments is no more than the number of | |
3542 | input operands. | |
3543 | (mips_expand_builtin_compare): Use an array of arguments rather | |
3544 | than an array of operands. Assert that the number of operands is | |
3545 | as expected. | |
3546 | (add_constant): Rename to... | |
3547 | (mips16_add_constant): ...this. Use XNEW. | |
3548 | (dump_constants_1): Rename to... | |
3549 | (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P. | |
3550 | (dump_constants): Rename to... | |
3551 | (mips16_emit_constants): ...this. | |
3552 | (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO. | |
3553 | (mips_set_mips16_mode): Don't call mips_init_split_addresses. | |
3554 | Assign mips16_p to was_mips16_p. | |
3555 | (mips_parse_cpu): Tweak warning message. | |
3556 | (override_options): Rename to... | |
3557 | (mips_override_options): ...this. Move the mips_cost initialization | |
3558 | out of the "shared with GAS" block. Quote option names in error | |
3559 | messages. | |
3560 | (mips_conditional_register_usage): Make local variable REGNO unsigned. | |
3561 | (mips_order_regs_for_local_alloc): Remove register keyword. | |
3562 | ||
3563 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3564 | ||
3565 | * system.h (IN_RANGE): Cast each argument individually. | |
3566 | ||
3567 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3568 | ||
3569 | * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float | |
3570 | MIPS16 code unless using o32 or o64. | |
3571 | ||
3572 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3573 | ||
3574 | * config/mips/mips.c (mips_cannot_change_mode_class): Don't check | |
3575 | for modes smaller than 4 bytes. | |
3576 | * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove | |
3577 | FPR alternatives. | |
3578 | ||
3579 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3580 | ||
3581 | * config/mips/mips-protos.h (mips_output_aligned_bss): Delete. | |
3582 | * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete. | |
3583 | (ASM_OUTPUT_ALIGNED_BSS): Delete. | |
3584 | * config/mips/mips.c (mips_output_aligned_bss): Delete. | |
3585 | ||
3586 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3587 | ||
3588 | * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid | |
3589 | sibling calls to "mips16" functions if the function satisfies | |
3590 | const_call_insn_operand. | |
3591 | ||
3592 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3593 | ||
3594 | * config/mips/mips.c (mips_va_start): Fix types in calls | |
3595 | to build_int_cst. | |
3596 | ||
3597 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3598 | ||
3599 | * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals | |
3600 | if ISA_HAS_FP4. | |
3601 | ||
3602 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3603 | ||
3604 | * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro. | |
3605 | * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1 | |
3606 | instead of checking mips_isa. | |
3607 | ||
3608 | 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
3609 | ||
3610 | * doc/invoke.texi (-mpaired-single): Don't say that the option | |
3611 | requires 64-bit code. | |
3612 | * config/mips/mips-protos.h (mips_modes_tieable_p): Declare. | |
3613 | * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro. | |
3614 | (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for | |
3615 | V2SF if ISA_MIPS32R2. | |
3616 | (MODES_TIEABLE_P): Use mips_modes_tieable_p. | |
3617 | * config/mips/mips.c (mips_rtx_costs): Pass a mode argument | |
3618 | to ISA_HAS_NMADD_NMSUB. | |
3619 | (mips_split_doubleword_move): Handle V2SF. | |
3620 | (mips_modes_tieable_p): New function. | |
3621 | (override_options): Report a warning rather than an error when | |
3622 | -mpaired-single is used on ISAs that don't support it; use | |
3623 | ISA_HAS_PAIRED_SINGLE to check that case. | |
3624 | * config/mips/mips.md (MOVE64): New mode iterator. Replace DI | |
3625 | and DF move splitters with a single MOVE64 splitter, thereby adding | |
3626 | a V2SF splitter too. | |
3627 | (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF. | |
3628 | Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator. | |
3629 | (HALFMODE): Add V2SF. | |
3630 | (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>) | |
3631 | (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB. | |
3632 | (movv2sf_hardfloat_64bit): Tweak ordering of conditions. | |
3633 | (movv2sf_hardfloat_32bit): New pattern. | |
3634 | (load_low<mode>, load_high<mode>, store_word<mode>): Remove | |
3635 | TARGET_DOUBLE_FLOAT conditions. | |
3636 | ||
3637 | 2007-10-20 Jakub Jelinek <jakub@redhat.com> | |
3638 | ||
3639 | * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point | |
3640 | saved CR2 offset to low 32 bits of regs->ccr rather than the whole | |
3641 | 64-bit register in 64-bit libgcc. | |
3642 | ||
3643 | 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com> | |
3644 | ||
3645 | * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b. | |
3646 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
3647 | (CRT_BINUTILS_SPECS): Likewsie. | |
3648 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
3649 | ||
3650 | 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
3651 | ||
3652 | * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror= | |
3653 | and -Wfatal-errors together. | |
3654 | ||
3655 | 2007-10-20 Alan Modra <amodra@bigpond.net.au> | |
3656 | ||
3657 | PR target/33812 | |
3658 | * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16 | |
3659 | change for vrsave, ie restore after frame pop. | |
3660 | ||
3661 | 2007-10-19 David S. Miller <davem@davemloft.net> | |
3662 | ||
3663 | * config/sparc/niagara2.md: Fix copyright notice. | |
3664 | ||
3665 | 2007-10-19 Sebastian Pop <sebastian.pop@amd.com> | |
3666 | ||
3667 | PR tree-optimization/23820 | |
3668 | PR tree-optimization/24309 | |
3669 | PR tree-optimization/33766 | |
3670 | * testsuite/gcc.dg/tree-ssa/pr23820.c: New. | |
3671 | * testsuite/gcc.dg/tree-ssa/pr24309.c: New. | |
3672 | * testsuite/gcc.dg/tree-ssa/pr33766.c: New. | |
3673 | * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed. | |
3674 | * tree-loop-linear.c (perfect_loop_nest_depth): New. | |
3675 | (linear_transform_loops): Use perfect_loop_nest_depth. | |
3676 | * lambda-code.c (perfect_nest_p): Outer loops in perfect nests | |
3677 | should have a single condition: their exit. | |
3678 | ||
3679 | 2007-10-19 Richard Guenther <rguenther@suse.de> | |
3680 | ||
3681 | PR middle-end/33816 | |
3682 | PR middle-end/32921 | |
3683 | * stor-layout.c (layout_type): Assert that aggregates do not | |
3684 | have their alias sets set. | |
3685 | * alias.c (get_alias_set): Return alias set zero for incomplete | |
3686 | types, return the alias set of the element for incomplete array | |
3687 | types, but do not remember these. | |
3688 | ||
3689 | 2007-10-19 Richard Guenther <rguenther@suse.de> | |
3690 | ||
3691 | Revert | |
3692 | 2007-10-19 Richard Guenther <rguenther@suse.de> | |
3693 | ||
3694 | PR middle-end/32921 | |
3695 | * tree.c (build_array_type): Do not re-layout unbound array | |
3696 | types. | |
3697 | ||
3698 | 2007-10-19 Richard Guenther <rguenther@suse.de> | |
3699 | ||
3700 | PR middle-end/32921 | |
3701 | * tree.c (build_array_type): Do not re-layout unbound array types. | |
3702 | ||
3703 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3704 | ||
3705 | * config/mips/mips.c (mips_canonicalize_comparison): Check | |
3706 | mips_relational_operand_ok_p before trying to rewrite the test. | |
3707 | Only calculate PLUS_ONE if needed. | |
3708 | (mips_emit_int_relational): Don't call mips_relational_operand_ok_p | |
3709 | here. | |
3710 | ||
3711 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3712 | ||
3713 | * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR | |
3714 | calculation. | |
3715 | ||
3716 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3717 | ||
3718 | * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that | |
3719 | the call uses the incoming value of $2. | |
3720 | ||
3721 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3722 | ||
3723 | * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem | |
3724 | rather then gen_rtx_MEM. | |
3725 | (mips_setup_incoming_varargs): Use gen_frame_mem rather than | |
3726 | gen_rtx_MEM. | |
3727 | (mips_set_return_address): Likewise. | |
3728 | (mips_restore_gp): Likewise. | |
3729 | ||
3730 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3731 | ||
3732 | * config/mips/mips.c (gpr_mode): Delete. | |
3733 | (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD | |
3734 | instead of gpr_mode. | |
3735 | (mips_for_each_saved_reg): Likewise. | |
3736 | (mips_expand_prologue, mips_expand_epilogue): Likewise. | |
3737 | (override_options): Don't initialize gpr_mode. | |
3738 | * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode. | |
3739 | ||
3740 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3741 | ||
3742 | * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD | |
3743 | case last. | |
3744 | (mips_class_max_nregs): Calculate the smallest consituent register | |
3745 | size and use that to determine an upper bound on the number of | |
3746 | registers. | |
3747 | ||
3748 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3749 | ||
3750 | * config/mips/mips.c (mips16_copy_fpr_return_value): New function, | |
3751 | split out from... | |
3752 | (mips_expand_epilogue): ...here. | |
3753 | (mips_mdebug_abi_name): New function, split out from... | |
3754 | (mips_file_start): ...here. | |
3755 | (mips_hard_regno_mode_ok_p): New function, split out from... | |
3756 | (override_options): ...here. | |
3757 | (mips_expand_builtin_1): New function, split out from... | |
3758 | (mips_expand_buitin): ...here. Abort if we don't recognize | |
3759 | the function. | |
3760 | ||
3761 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3762 | ||
3763 | * config/mips/mips.c (build_mips16_function_stub): Load the | |
3764 | target address into $1 before transfering the arguments. | |
3765 | Don't use ".set noreorder". | |
3766 | (build_mips16_call_stub): Likewise. | |
3767 | ||
3768 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3769 | ||
3770 | * config/mips/mips.c (mips_output_32bit_xfer): New function. | |
3771 | (mips_output_64bit_xfer): Likewise. | |
3772 | (mips16_fp_args): Rename to... | |
3773 | (mips_output_args_xfer): ...this and replace the FROM_FP_P argument | |
3774 | with a DIRECTION argument. Use mips_output_32bit_xfer and | |
3775 | mips_output_64bit_xfer. | |
3776 | (build_mips16_function_stub): Update accordingly. | |
3777 | (mips16_fpret_double): Delete. | |
3778 | (build_mips16_call_stub): Update after above changes. | |
3779 | Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead | |
3780 | of mips16_fpret_double. Use GP_REG_RETURN. | |
3781 | ||
3782 | 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
3783 | ||
3784 | * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and | |
3785 | use asm_out_file instead. | |
3786 | (build_mips16_function_stub): Likewise. | |
3787 | (build_mips16_call_stub, mips_output_function_prologue): Update | |
3788 | accordingly. | |
3789 | ||
3790 | 2007-10-18 David S. Miller <davem@davemloft.net> | |
3791 | ||
3792 | Add Niagara-2 support. | |
3793 | * doc/invoke.texi: Document -m{cpu,tune}=niagara2. | |
3794 | * config.gcc: Add niagara2 to cpu and tune lists for sparc. | |
3795 | * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2. | |
3796 | (include): Add inclusion of niagara2.md | |
3797 | * config/sparc/sparc.c (niagara2_costs): New. | |
3798 | (sparc_override_options): Add niagara2 entry to cpu_default[] | |
3799 | and cpu_table[]. Set align_functions to 32 on Niagara2. Use | |
3800 | niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for | |
3801 | PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE. | |
3802 | (sparc_initialize_trampoline): Handle niagara2 like niagara. | |
3803 | (sparc64_initialize_trampoline): Likewise. | |
3804 | (sparc_use_sched_lookahead): Likewise. | |
3805 | (sparc_issue_rate): Likewise. | |
3806 | * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and | |
3807 | mcpu=niagara2 | |
3808 | * config/sparc/sparc.h (TARGET_CPU_niagara2): Define. | |
3809 | ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for | |
3810 | TARGET_CPU_niagara2. | |
3811 | (PROCESSOR_NIAGARA2): New. | |
3812 | (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2. | |
3813 | (BRANCH_COST): Likewise. | |
3814 | * config/sparc/linux64.h: Handle TARGET_CPU_niagara2. | |
3815 | * config/sparc/sol2.h: Likewise. | |
3816 | * config/sparc/niagara2.md: New file. | |
3817 | ||
3818 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3819 | ||
3820 | * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and | |
3821 | and fp_reg_size. | |
3822 | (mips_compute_frame_info): Remove associated code. | |
3823 | (mips16e_build_save_restore): Check num_fp instead of fp_reg_size. | |
3824 | ||
3825 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3826 | ||
3827 | * config/mips/mips-protos.h (compute_frame_size): Delete. | |
3828 | * config/mips/mips.h: Update comments. | |
3829 | * config/mips/mips.c (mips_frame_info): Remove initialized. | |
3830 | (compute_frame_size): Rename to... | |
3831 | (mips_compute_frame_info): ...this and make static. Remove the | |
3832 | SIZE argument and return no value. Remove the setting of initialized. | |
3833 | Update rest of file accordingly. | |
3834 | (mips_set_return_address): Don't call compute_frame_size. | |
3835 | (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31). | |
3836 | Don't call compute_frame_size. | |
3837 | ||
3838 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3839 | ||
3840 | * config/mips/mips-protos.h (mips_frame_pointer_required): Declare. | |
3841 | * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use | |
3842 | mips_hard_frame_pointer_required. | |
3843 | (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for | |
3844 | large MIPS16 frames. | |
3845 | * config/mips/mips.c (mips_frame_pointer_required): New function. | |
3846 | ||
3847 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3848 | ||
3849 | * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset | |
3850 | and hard_frame_pointer_offset. | |
3851 | (mips_debugger_offset): Use hard_frame_pointer_offset. | |
3852 | (mips16e_collect_argument_save_p): Likewise. | |
3853 | (compute_frame_size): Initialize arg_pointer_offset and | |
3854 | hard_frame_pointer_offset. | |
3855 | (mips_initial_elimination_offset): Use them. | |
3856 | (mips_output_function_prologue): Use hard_frame_pointer_offset. | |
3857 | (mips_expand_prologue, mips_expand_epilogue): Likewise. | |
3858 | ||
3859 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3860 | ||
3861 | * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl | |
3862 | profiling code. | |
3863 | * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type | |
3864 | "unsigned int" rather than "int" and put them with the other | |
3865 | register-related fields. Put expanded comments above fields | |
3866 | rather than to their right. | |
3867 | (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument | |
3868 | with a NUM_REGS_PTR argument. | |
3869 | (mips16e_save_restore_pattern_p): Update accordingly. | |
3870 | (compute_frame_size): Clarify frame diagram. Rewrite. | |
3871 | ||
3872 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3873 | ||
3874 | * config/mips/mips-ftypes.def: New file. | |
3875 | * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2) | |
3876 | (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros. | |
3877 | (mips_function_type): Redefine using mips-ftypes.def. | |
3878 | (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names. | |
3879 | (mips_builtin_vector_type): New function. | |
3880 | (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI) | |
3881 | (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF) | |
3882 | (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1) | |
3883 | (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New | |
3884 | macros. | |
3885 | (mips_build_function_type): New function. | |
3886 | (mips_init_builtins): Use it to create types lazily. | |
3887 | ||
3888 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3889 | ||
3890 | * config/mips/mips.h (set_volatile): Delete. | |
3891 | * config/mips/mips.c (set_volatile): Delete. | |
3892 | (mips_print_operand_punctuation): New function, split out from | |
3893 | print_operand. Remove '%{', '%}', '%~', '%&' and '%!'. | |
3894 | Use the same character ordering in the code and the comments. | |
3895 | Use a recursive call to handle '*'. Abort on unknown characters. | |
3896 | (mips_init_print_operand_punct): New function, split out from | |
3897 | override_options. | |
3898 | (mips_print_int_branch_condition): New function, split out from | |
3899 | print_operand. Use GET_RTX_NAME. Use output_operand_lossage | |
3900 | to report unexpected codes. | |
3901 | (mips_print_float_branch_condition): New function, split out from | |
3902 | print_operand. Use output_operand_lossage to report unexpected codes. | |
3903 | (print_operand): Rework to use a case statement. Use the | |
3904 | same letter ordering in the code and the comments. Use | |
3905 | output_operand_lossage to report unexpected codes and | |
3906 | reverse_condition to handle inverted branch conditions. | |
3907 | (override_options): Use mips_init_print_operand_punct. | |
3908 | ||
3909 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3910 | ||
3911 | * config/mips/mips.h: Move variable declarations to end of file and | |
3912 | enclose them all in #ifndef USED_FOR_TARGET. | |
3913 | * config/mips/mips.c: Reorder functions into more logical groups, | |
3914 | and so that callees appear before callers. Put the targetm | |
3915 | initializer at the end of the file. Remove forward static | |
3916 | declarations where possible. | |
3917 | (mips_init_builtins): Add "static" to definition. | |
3918 | (mips_expand_builtin, mips_mode_rep_extended): Likewise. | |
3919 | ||
3920 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3921 | ||
3922 | * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete. | |
3923 | (TARGET_MAX_ANCHOR_OFFSET): Delete. | |
3924 | (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS. | |
3925 | (mips_set_mips16_mode): Initialize min_anchor_offset and | |
3926 | max_anchor_offset directly to constants. | |
3927 | ||
3928 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3929 | ||
3930 | * config/mips/mips.c: Delete trailing whitespace. | |
3931 | ||
3932 | 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
3933 | ||
3934 | * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO. | |
3935 | (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY, | |
3936 | and pick the first. | |
3937 | * config/mips/mips.md (load_call<mode>): Don't make the unspec | |
3938 | depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO. | |
3939 | ||
3940 | 2007-10-18 David Daney <ddaney@avtrex.com> | |
3941 | ||
3942 | * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new | |
3943 | reg_offset variable to calculate register locations. | |
3944 | ||
3945 | 2007-10-18 Richard Guenther <rguenther@suse.de> | |
3946 | ||
3947 | * tree-ssa.c (uid_ssaname_map_eq): New function. | |
3948 | (uid_ssaname_map_has): Likewise. | |
3949 | (init_tree_ssa): Allocate default_defs as uid_ssaname map. | |
3950 | * tree-flow.h (struct gimple_df): Make default_defs a | |
3951 | uid_ssaname map. | |
3952 | * tree-dfa.c (gimple_default_def): Deal with it. | |
3953 | (set_default_def): Likewise. | |
3954 | ||
3955 | 2007-10-18 Richard Guenther <rguenther@suse.de> | |
3956 | ||
3957 | * tree-flow.h (struct gimple_df): Make referenced_vars | |
3958 | a uid_decl_map. | |
3959 | (uid_decl_map_eq): Declare. | |
3960 | (uid_decl_map_hash): Likewise. | |
3961 | * tree-ssa.c (uid_decl_map_eq): New function. | |
3962 | (uid_decl_map_hash): Likewise. | |
3963 | (init_tree_ssa): Make referenced_vars a uid_decl_map. | |
3964 | * tree-flow-inline.h (first_referenced_var): Deal with | |
3965 | the referenced_vars representation change. | |
3966 | (next_referenced_var): Likewise. | |
3967 | * tree-dfa.c (referenced_var_lookup): Likewise. | |
3968 | (referenced_var_check_and_insert): Likewise. | |
3969 | (remove_referenced_var): Likewise. | |
3970 | ||
3971 | 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com> | |
3972 | ||
3973 | * config/mips/mips.c (mips_dwarf_register_span): New. | |
3974 | (TARGET_DWARF_REGISTER_SPAN): Define. | |
3975 | ||
3976 | 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn> | |
3977 | ||
3978 | * config.gcc : update score-*-elf(extra_objs). | |
3979 | * config/score/mac.md : Remove. | |
3980 | * config/score/misc.md : Remove. | |
3981 | * config/score/score7.md : Remove. | |
3982 | * config/score/score-mdaux.h : Remove. | |
3983 | * config/score/score-mdaux.c : Remove. | |
3984 | * config/score/score-version.h : Remove. | |
3985 | * config/score/score-generic.md : New. | |
3986 | * config/score/score3.h : New. | |
3987 | * config/score/score3.c : New. | |
3988 | * config/score/score7.h : New. | |
3989 | * config/score/score7.c : New. | |
3990 | * config/score/mul-div.S : add flush_cache score3 support. | |
3991 | * config/score/elf.h : Fix some typos. | |
3992 | * config/score/score.md : merge score3 and score7 pattern. | |
3993 | * config/score/score.c : use to seperate which target it used. | |
3994 | * config/score/score.h : use to seperate the target macro. | |
3995 | * config/score/score.opt : remove -mmac option , add -mscore3, | |
3996 | -mscore3d and -march OPTION support. | |
3997 | ||
3998 | 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
3999 | ||
4000 | * cfgexpand.c (expand_stack_vars): Add checking to make sure | |
4001 | that the offset of a variable is not greater than the size | |
4002 | of the paritition. | |
4003 | ||
4004 | 2007-10-17 Anatoly Sokolov <aesok@post.ru> | |
4005 | ||
4006 | * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, | |
4007 | atmega88p, atmega168p and atmega328p devices. | |
4008 | * config/avr/avr.h (LINK_SPEC): (Ditto.). | |
4009 | (CRT_BINUTILS_SPECS): (Ditto.). | |
4010 | * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). | |
4011 | ||
4012 | 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> | |
4013 | ||
4014 | * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'. | |
4015 | * ddg.c: Ditto. | |
4016 | * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING. | |
4017 | * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'. | |
4018 | (print_insn): Move declaration to ... | |
4019 | * rtl.h (print_insn): ... here. | |
4020 | ||
4021 | 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> | |
4022 | ||
4023 | * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type, | |
4024 | m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem, | |
4025 | m68k_sched_branch_type): Move declarations to ... | |
4026 | * config/m68/m68k-protos.h: ... here. | |
4027 | ||
4028 | 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> | |
4029 | ||
4030 | * genattrtab.c (main): Rearrange output of insn-attrtab.c headers. | |
4031 | ||
4032 | 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com> | |
4033 | ||
4034 | * config/avr/avr.c (avr_mcu_types): Add attiny48. | |
4035 | * config/avr/avr.h (LINK_SPEC): Likewise. | |
4036 | (CRT_BINUTILS_SPECS): Likewsie. | |
4037 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
4038 | ||
4039 | 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com> | |
4040 | ||
4041 | * config/avr/avr.c (avr_mcu_types): Add attiny43u. | |
4042 | * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie. | |
4043 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
4044 | ||
4045 | 2007-10-17 Uros Bizjak <ubizjak@gmail.com> | |
4046 | ||
4047 | PR middle-end/33794 | |
4048 | * reg-stack.c (move_for_stack_reg): Swap input argument of | |
4049 | UNSPEC_TAN insn to the top of the stack. | |
4050 | ||
4051 | 2007-10-17 Uros Bizjak <ubizjak@gmail.com> | |
4052 | ||
4053 | PR target/32961 | |
4054 | * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128, | |
4055 | IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128, | |
4056 | IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128, | |
4057 | IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require | |
4058 | immediate shift value. | |
4059 | * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32, | |
4060 | _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, | |
4061 | _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument. | |
4062 | Remove macros for !__OPTIMIZE__ case. | |
4063 | ||
4064 | 2007-10-17 Daniel Berlin <dberlin@dberlin.org> | |
4065 | ||
4066 | * tree-ssa-structalias.c (rewrite_constraints): Don't test for | |
4067 | directness anymore. | |
4068 | (perform_var_substitution): Only DFS from real nodes. Don't test | |
4069 | for directness. | |
4070 | (unite_pointer_equivalences): Fix broken test. | |
4071 | ||
4072 | 2007-10-17 Alan Modra <amodra@bigpond.net.au> | |
4073 | ||
4074 | * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct | |
4075 | altivec sp_offset. Rearrange sp_offset assignments to | |
4076 | correspond to stack adjustments. Use frame_reg_rtx for | |
4077 | SPE register restores. Correct SPE stack adjustment. | |
4078 | ||
4079 | 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4080 | ||
4081 | * builtins.c (gimplify_va_arg_expr): Use inform for help message. | |
4082 | * toplev.c (check_global_declaration_1): Use appropriate warning | |
4083 | option instead of unnamed warning. | |
4084 | * stor-layout.c (layout_decl): Likewise. | |
4085 | * c-typeck.c (build_conditional_expr): Likewise. | |
4086 | (build_compound_expr): Fix wrong comment. | |
4087 | (build_binary_op): Use appropriate warning option instead of | |
4088 | unnamed warning. | |
4089 | * cfgexpand.c (tree_expand_cfg): Likewise. | |
4090 | * tree-optimize.c (tree_rest_of_compilation): Likewise. | |
4091 | * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise. | |
4092 | (execute_warn_function_return): Likewise. | |
4093 | * stmt.c (warn_if_unused_value): Likewise. | |
4094 | ||
4095 | 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com> | |
4096 | ||
4097 | * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316. | |
4098 | * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for | |
4099 | similar devices. | |
4100 | (CRT_BINUTILS_SPECS): Likewsie. | |
4101 | * config/avr/t-avr (MULTILIB_MATCHES): Likewise. | |
4102 | ||
4103 | 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com> | |
4104 | ||
4105 | PR target/33594 | |
4106 | * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define. | |
4107 | ||
4108 | 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr> | |
4109 | ||
4110 | * dce.c (init_dce): Only initialize the obstacks for the fast pass. | |
4111 | (fini_dce): Only release them for the fast pass. | |
4112 | (end_ud_dce): Delete. | |
4113 | (rest_of_handle_ud_dce): Do not modify df_in_progress. | |
4114 | Call fini_dce instead of end_ud_dce. | |
4115 | (rest_of_handle_fast_dce): Do not modify df_in_progress. | |
4116 | (run_fast_df_dce): Reset df_in_progress to false on exit. | |
4117 | ||
4118 | 2007-10-16 Paolo Bonzini <bonzini@gnu.org> | |
4119 | Maxim Kuvyrkov <maxim@codesourcery.com> | |
4120 | ||
4121 | * target.h (unspec_may_trap_p): New target hook. | |
4122 | * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro. | |
4123 | * targhooks.c (default_unspec_may_trap_p): Default implementation of | |
4124 | the hook. | |
4125 | * targhooks.h (default_unspec_may_trap_p): Declare it. | |
4126 | * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook. | |
4127 | * rtlanal.c (may_trap_p_1): Use new hook. Make global. | |
4128 | * rtl.h (may_trap_p_1): Declare. | |
4129 | ||
4130 | * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to | |
4131 | override default hook implementation. | |
4132 | (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the | |
4133 | hook. | |
4134 | ||
4135 | 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4136 | ||
4137 | * doc/invoke.texi (Wextra): Move it just after Wall, list the | |
4138 | options enabled by Wextra and mention Wuninitialized. | |
4139 | ||
4140 | 2007-10-15 Nigel Stephens <nigel@mips.com> | |
4141 | ||
4142 | * config/mips/mips.h (LOCAL_ALIGNMENT): Define. | |
4143 | ||
4144 | 2007-10-15 Jakub Jelinek <jakub@redhat.com> | |
4145 | ||
4146 | PR tree-optimization/33136 | |
4147 | * opts.c (decode_options): Don't enable flag_ipa_type_escape. | |
4148 | ||
4149 | 2007-10-15 Alexandre Oliva <aoliva@redhat.com> | |
4150 | ||
4151 | PR tree-optimization/33735 | |
4152 | PR tree-optimization/33572 | |
4153 | * tree-inline.c (update_ssa_across_abnormal_edges): Revert | |
4154 | 2007-10-09's change. | |
4155 | * except.c (duplicate_eh_regions): Don't look for prev_try | |
4156 | beyond ERT_ALLOWED_EXCEPTIONS with an empty list. | |
4157 | ||
4158 | 2007-10-15 Alexandre Oliva <aoliva@redhat.com> | |
4159 | ||
4160 | PR middle-end/33706 | |
4161 | * tree-inline.c (copy_bb): Use bsi_replace to replace a | |
4162 | __builtin_va_arg_pack-containing call stmt. | |
4163 | ||
4164 | 2007-10-15 Razya Ladelsky <razya@il.ibm.com> | |
4165 | ||
4166 | * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole | |
4167 | program flag. | |
4168 | ||
4169 | 2007-10-15 Jakub Jelinek <jakub@redhat.com> | |
4170 | ||
4171 | PR tree-optimization/33619 | |
4172 | * tree-ssa-ter.c (is_replaceable_p): Return false for all | |
4173 | calls. | |
4174 | ||
4175 | 2007-10-15 David Edelsohn <edelsohn@gnu.org> | |
4176 | ||
4177 | * config.gcc (powerpc-ibm-aix5*): Install altivec.h. | |
4178 | ||
4179 | 2007-10-15 Richard Guenther <rguenther@suse.de> | |
4180 | ||
4181 | * fold-const.c (extract_array_ref): Remove. | |
4182 | (fold_comparison): Handle POINTER_PLUS_EXPR with the | |
4183 | generic address expression comparison folding. Remove | |
4184 | the folding that used extract_array_ref. | |
4185 | ||
4186 | 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com> | |
4187 | ||
4188 | PR target/33133 | |
4189 | * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if | |
4190 | speculation type of insn can be changed before trying to do that. | |
4191 | ||
4192 | 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr> | |
4193 | ||
4194 | * dse.c (struct insn_info): Add 'frame_read' field. | |
4195 | (scan_insn): For the call to a const function, set frame_read if | |
4196 | reload has been run. | |
4197 | If the insn reads the frame, kill the frame related stores. | |
4198 | (scan_reads_nospill): Likewise. | |
4199 | ||
4200 | 2007-10-14 Jason Merrill <jason@redhat.com> | |
4201 | ||
4202 | * tree-eh.c (optimize_double_finally): Don't assume that the | |
4203 | cleanup we're duplicating is only one statement. | |
4204 | ||
4205 | 2007-10-14 Kazu Hirata <kazu@codesourcery.com> | |
4206 | ||
4207 | * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c, | |
4208 | config/i386/i386.md, config/i386/sse.md, function.c, jump.c, | |
4209 | modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c, | |
4210 | tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c, | |
4211 | tree-vect-transform.c: Fix comment typos. | |
4212 | * doc/extend.texi: Fix a typo. | |
4213 | ||
4214 | * c-common.h: Remove the prototype for c_expand_body. | |
4215 | * c-tree.h: Remove the prototype for c_disregard_inline_limits. | |
4216 | * tree.h: Remove the prototype for fold_build_call_expr. | |
4217 | ||
4218 | * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): | |
4219 | Remove. | |
4220 | * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn. | |
4221 | ||
4222 | 2007-10-13 David Edelsohn <edelsohn@gnu.org> | |
4223 | ||
4224 | * config/rs6000/aix53.h: New file. | |
4225 | * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0. | |
4226 | (TARGET_ALTIVEC_ABI): Same. | |
4227 | * config/rs6000/aix.h (TARGET_ALTIVEC): Delete. | |
4228 | (TARGET_ALTIVEC_ABI): Delete. | |
4229 | * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new | |
4230 | stanza defaulting to aix5.3. | |
4231 | ||
4232 | 2007-10-12 Nathan Froyd <froydnj@codesourcery.com> | |
4233 | ||
4234 | * config/i386/i386.md (SI_REG, DI_REG): New constants. | |
4235 | (strmov): Use defined constants. | |
4236 | (cmpstrnsi): Likewise. | |
4237 | * config/i386/i386.c (decide_alg): Use defined constants. | |
4238 | (ix86_expand_strlen): Likewise. | |
4239 | ||
4240 | 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk> | |
4241 | ||
4242 | * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition. | |
4243 | * var-tracking.c (micro_operation_def): Update comment on u.loc. | |
4244 | (mode_for_reg_attrs, var_lowpart): New functions. | |
4245 | (add_uses): Consider recording a lowpart of LOC for MO_USE. | |
4246 | (add_stores): Likewise MO_SET and MO_COPY. If the source of a set | |
4247 | or copy is known, set LOC to the SET that performs the set, instead | |
4248 | of the destination. | |
4249 | (find_src_status, find_src_set_src): Remove LOC parameter. | |
4250 | Replace INSN with the source value. | |
4251 | (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when | |
4252 | handling MO_SET and MO_COPY. Update the calls to find_src_status | |
4253 | and find_src_set_src. | |
4254 | ||
4255 | 2007-10-12 Nathan Froyd <froydnj@codesourcery.com> | |
4256 | ||
4257 | PR 11001 | |
4258 | * config/i386/i386.md (strmov): Check for esi and edi usage. | |
4259 | * config/i386/i386.c (decide_alg): Check whether we can use a | |
4260 | rep prefix and adjust algorithm choice accordingly. | |
4261 | (ix86_expand_strlen): Check for eax, ecx, and edi usage. | |
4262 | ||
4263 | 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
4264 | ||
4265 | * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc. | |
4266 | ||
4267 | 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com> | |
4268 | ||
4269 | * global.c (build_insn_chain): Formatting fixes. | |
4270 | ||
4271 | 2007-10-12 Richard Guenther <rguenther@suse.de> | |
4272 | ||
4273 | * tree-ssa-forwprop.c (forward_propagate_into_cond): For | |
4274 | combining both operands require either both have single uses | |
4275 | or combining to a constant. | |
4276 | ||
4277 | 2007-10-12 Richard Guenther <rguenther@suse.de> | |
4278 | ||
4279 | PR middle-end/26198 | |
4280 | * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from | |
4281 | a rhs with side-effects or which is a load. | |
4282 | (forward_propagate_into_cond): Also try combining both operands. | |
4283 | ||
4284 | 2007-10-12 Uros Bizjak <ubizjak@gmail.com> | |
4285 | ||
4286 | PR tree-optimization/33742 | |
4287 | * tree-vect-transform.c (vectorizable_operation): Return false | |
4288 | if get_vectype_for_scalar_type for scalar_dest can't be determined. | |
4289 | (vectorizable_call): Same for rhs_type and lhs_type. | |
4290 | ||
4291 | 2007-10-12 Jakub Jelinek <jakub@redhat.com> | |
4292 | ||
4293 | PR tree-optimization/33645 | |
4294 | * tree-ssa-live.c (mark_all_vars_used): Add data argument, | |
4295 | pass it to walk_tree. | |
4296 | (mark_all_vars_used_1): Pass data through to mark_all_vars_used. | |
4297 | When calling set_is_used on a VAR_DECL, if data is not NULL and | |
4298 | its DECL_UID is in the bitmap, call mark_all_vars_used on its | |
4299 | DECL_INITIAL after clearing the bit in bitmap. | |
4300 | (remove_unused_locals): Adjust mark_all_vars_used callers. | |
4301 | Instead of removing unused global vars from unexpanded_var_list | |
4302 | immediately record them in bitmap, call mark_all_vars_used on | |
4303 | all used global vars from unexpanded_var_list and only purge | |
4304 | global vars that weren't found used even during that step. | |
4305 | ||
4306 | 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
4307 | ||
4308 | * gthr-posix.h (__gthread_active_init): Create detached instead of | |
4309 | joinable thread when testing whether threads are active on hppa-hpux. | |
4310 | * gthr-posix95.h (__gthread_active_init): Likewise. | |
4311 | ||
4312 | 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com> | |
4313 | ||
4314 | PR middle-end/33676 | |
4315 | * global.c (build_insn_chain): Include insn that occur between | |
4316 | basic blocks. | |
4317 | ||
4318 | 2007-10-11 Tom Tromey <tromey@redhat.com> | |
4319 | ||
4320 | * gengtype-yacc.y: Delete. | |
4321 | ||
4322 | 2007-10-11 Uros Bizjak <ubizjak@gmail.com> | |
4323 | ||
4324 | * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants. | |
4325 | * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32, | |
4326 | function_value_32, function_value_64, function_value_ms_64, | |
4327 | setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call, | |
4328 | legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk): | |
4329 | Use new constants. | |
4330 | ||
4331 | 2007-10-11 Richard Guenther <rguenther@suse.de> | |
4332 | ||
4333 | * gcse.c (hash_scan_set): If the next nonnote insn is in | |
4334 | a different basic block insert the set. | |
4335 | ||
4336 | 2007-10-11 Richard Guenther <rguenther@suse.de> | |
4337 | ||
4338 | PR middle-end/33724 | |
4339 | * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function. | |
4340 | (verify_gimple_expr): Use it to verify pointer-to types for | |
4341 | ADDR_EXPRs. | |
4342 | ||
4343 | 2007-10-11 Richard Guenther <rguenther@suse.de> | |
4344 | ||
4345 | PR c/33726 | |
4346 | * c-typeck.c (build_array_ref): Do not strip qualifiers from | |
4347 | the array element type. | |
4348 | ||
4349 | 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr> | |
4350 | ||
4351 | PR rtl-optimization/33638 | |
4352 | * dse.c (struct insn_info): Remove 'stack_read' field, | |
4353 | add 'stack_pointer_based' field. | |
4354 | (record_store): For a store with non-constant base, record | |
4355 | whether it is stack pointer based. | |
4356 | (scan_insn): For the call to a const function, remove stack | |
4357 | pointer based stores from the list of local active stores. | |
4358 | (scan_reads_nospill): Delete code dealing with const functions. | |
4359 | ||
4360 | 2007-10-10 Peter Bergner <bergner@vnet.ibm.com> | |
4361 | ||
4362 | * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables | |
4363 | to HOST_WIDE_INT. | |
4364 | (conflict_p, set_conflict, set_conflicts): Likewise. | |
4365 | * global.c (global_alloc): Likewise. | |
4366 | * ra.h: Update prototypes. | |
4367 | ||
4368 | 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com> | |
4369 | ||
4370 | * opth-gen.awk: Fixed generation of comment stating the origin | |
4371 | of options.h | |
4372 | ||
4373 | 2007-10-10 Kazu Hirata <kazu@codesourcery.com> | |
4374 | ||
4375 | Revert: | |
4376 | 2007-10-09 Kazu Hirata <kazu@codesourcery.com> | |
4377 | * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' | |
4378 | and '%}', respectively. | |
4379 | ||
4380 | Revert: | |
4381 | 2007-10-09 Kazu Hirata <kazu@codesourcery.com> | |
4382 | * config/m68k/m68k.c (print_operand): Handle '{' and '}'. | |
4383 | * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' | |
4384 | and '}'. | |
4385 | * config/m68k/m68k.md: Replace '{' with '%{' where '{' is | |
4386 | meant to be output. | |
4387 | ||
4388 | Revert: | |
4389 | 2007-10-07 Kazu Hirata <kazu@codesourcery.com> | |
4390 | * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly | |
4391 | syntax for ASSEMBLER_DIALECT. | |
4392 | * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. | |
4393 | ||
4394 | 2007-10-10 Revital Eres <eres@il.ibm.com> | |
4395 | ||
4396 | * modulo-sched.c (check_nodes_order): Dump the final order of | |
4397 | the nodes. | |
4398 | (get_sched_window): Add dump info. | |
4399 | (calculate_order_params): Dump order params of the nodes. | |
4400 | ||
4401 | 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com> | |
4402 | ||
4403 | PR middle-end/33669 | |
4404 | * ra-conflict.c (record_one_conflict_between_regnos, | |
4405 | set_conflicts_for_earlyclobber, global_conflicts): Improved logging. | |
4406 | (global_conflicts): Enhanced incorrect check. | |
4407 | ||
4408 | 2007-10-09 Geoffrey Keating <geoffk@apple.com> | |
4409 | ||
4410 | * dwarf2out.c (output_call_frame_info): FDEs are always emitted | |
4411 | if flag_exceptions is not set. | |
4412 | * config/darwin.c (darwin_emit_unwind_label): Rewrite to use | |
4413 | assemble_name rather than incorrectly emulating it. | |
4414 | ||
4415 | * doc/extend.texi (Deprecated Features): Mention that <? and >? and | |
4416 | friends are removed from G++. | |
4417 | ||
4418 | 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4419 | ||
4420 | * c-opts.c (c_common_handle_option): -Wnontemplate-friend, | |
4421 | -Wwrite-strings and -Wmultichar are enabled by default, so Wall | |
4422 | enabling them is redundant. Don't check two times for | |
4423 | c_dialect_cxx. | |
4424 | ||
4425 | 2007-10-09 H.J. Lu <hongjiu.lu@intel.com> | |
4426 | ||
4427 | * ra-conflict.c (record_one_conflict_between_regnos): Revert | |
4428 | the last change. | |
4429 | (set_conflicts_for_earlyclobber): Likewise. | |
4430 | (global_conflicts): Likewise. | |
4431 | ||
4432 | 2007-10-09 Kazu Hirata <kazu@codesourcery.com> | |
4433 | ||
4434 | * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' | |
4435 | and '%}', respectively. | |
4436 | ||
4437 | 2007-10-09 Kazu Hirata <kazu@codesourcery.com> | |
4438 | ||
4439 | * config/m68k/m68k.c (print_operand): Handle '{' and '}'. | |
4440 | * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' | |
4441 | and '}'. | |
4442 | * config/m68k/m68k.md: Replace '{' with '%{' where '{' is | |
4443 | meant to be output. | |
4444 | ||
4445 | 2007-10-09 Richard Guenther <rguenther@suse.de> | |
4446 | ||
4447 | PR middle-end/33692 | |
4448 | * gimplify.c (canonicalize_component_ref): Honor qualifiers | |
4449 | of referenced structure and component. | |
4450 | ||
4451 | 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com> | |
4452 | ||
4453 | PR middle-end/33669 | |
4454 | * ra-conflict.c (record_one_conflict_between_regnos, | |
4455 | set_conflicts_for_earlyclobber, global_conflicts): Improved logging. | |
4456 | (global_conflicts): Removed incorrect check. | |
4457 | ||
4458 | 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk> | |
4459 | ||
4460 | PR tree-optimization/33615 | |
4461 | * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt | |
4462 | if the statement might throw. Fix formatting. | |
4463 | ||
4464 | 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk> | |
4465 | ||
4466 | PR tree-optimization/33615 | |
4467 | * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE | |
4468 | if the rhs might throw. | |
4469 | ||
4470 | 2007-10-09 Jan Hubicka <jh@suse.cz> | |
4471 | ||
4472 | * invoke.texi (align-threshold, align-loop-iterations): Document. | |
4473 | * final.c: Include cfgloop.h, params.h | |
4474 | (compute_alignments): Dump decisions and compare them with loop | |
4475 | structure; honor given parameters. | |
4476 | (pass_compute_alignments): New dump file. | |
4477 | * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New. | |
4478 | * Makefile.in (final.o): Add dependency on cfgloop.h and params.h | |
4479 | ||
4480 | 2007-10-09 James E. Wilson <wilson@specifix.com> | |
4481 | ||
4482 | PR tree-optimization/33655 | |
4483 | PR middle-end/22156 | |
4484 | * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST, | |
4485 | convert it to bitsizetype before size_binop call. | |
4486 | ||
4487 | 2007-10-09 Alexandre Oliva <aoliva@redhat.com> | |
4488 | ||
4489 | PR tree-optimization/33572 | |
4490 | * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate | |
4491 | the absence of a corresponding edge from the exit block. | |
4492 | ||
4493 | 2007-10-09 Alexandre Oliva <aoliva@redhat.com> | |
4494 | ||
4495 | PR middle-end/22156 | |
4496 | * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for | |
4497 | bit-field layout. | |
4498 | (sra_build_assignment): Likewise. Set up mask depending on | |
4499 | precision, not type. | |
4500 | (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow | |
4501 | computing bit masks. | |
4502 | (sra_build_elt_assignment): Don't view-convert from signed to | |
4503 | unsigned. | |
4504 | (sra_explode_bitfield_assignment): Use bit-field type if | |
4505 | possible. Use BYTES_BIG_ENDIAN. | |
4506 | ||
4507 | 2007-10-08 Alexandre Oliva <aoliva@redhat.com> | |
4508 | ||
4509 | PR middle-end/22156 | |
4510 | * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether | |
4511 | the original stmt can throw. | |
4512 | (sra_build_bf_assignment): Fix type mismatch when applying negated | |
4513 | mask. | |
4514 | ||
4515 | 2007-10-08 Geoffrey Keating <geoffk@apple.com> | |
4516 | ||
4517 | * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register | |
4518 | '#pragma mark' to be executed at preprocessing time. | |
4519 | ||
4520 | 2007-10-08 Ollie Wild <aaw@google.com> | |
4521 | ||
4522 | * varasm.c (compare_constant): Removed call to | |
4523 | lang_hooks.expand_constant. | |
4524 | (copy_constants): Removed call to lang_hooks.expand_constant. | |
4525 | (compute_reloc_for_constant): Removed call to | |
4526 | lang_hooks.expand_constant. | |
4527 | (output_addressed_constants): Removed call to | |
4528 | lang_hooks.expand_constant. | |
4529 | (constructor_static_from_elts_p): Removed call to | |
4530 | lang_hooks.expand_constant. | |
4531 | (output_constant): Removed calls to lang_hooks.expand_constant. | |
4532 | * langhooks.h (struct lang_hooks): Removed field expand_constant. | |
4533 | * langhooks-def.h (lhd_return_tree): Removed. | |
4534 | (LANG_HOOKS_EXPAND_CONSTANT): Removed. | |
4535 | (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. | |
4536 | * langhooks.c (lhd_return_tree): Removed. | |
4537 | ||
4538 | 2007-10-08 Mark Shinwell <shinwell@codesourcery.com> | |
4539 | ||
4540 | * combine.c (setup_incoming_promotions): Ensure that | |
4541 | arguments that have not undergone mode promotions do not | |
4542 | incorrectly get marked as being sign- or zero-extended. | |
4543 | ||
4544 | 2007-10-08 Richard Guenther <rguenther@suse.de> | |
4545 | ||
4546 | PR middle-end/33693 | |
4547 | PR middle-end/33695 | |
4548 | PR middle-end/33697 | |
4549 | * fold-const.c (fold_binary): Use correct types in folding | |
4550 | of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B) | |
4551 | and building of RROTATE_EXPR. | |
4552 | ||
4553 | 2007-10-08 Richard Guenther <rguenther@suse.de> | |
4554 | ||
4555 | PR middle-end/33691 | |
4556 | PR middle-end/33694 | |
4557 | PR middle-end/33696 | |
4558 | * fold-const.c (fold_binary): Use the correct types when | |
4559 | folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2). | |
4560 | (fold_binary): Use the correct types when folding | |
4561 | (-A) - B to (-B) - A. | |
4562 | (fold_unary): Use the correct types when folding ~(X). | |
4563 | ||
4564 | 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4565 | ||
4566 | * doc/invoke.texi (Wall): fix formatting issues. | |
4567 | ||
4568 | 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk> | |
4569 | ||
4570 | * simplify-rtx.c (simplify_binary_operation_1): Canonicalize | |
4571 | truncated shift counts. | |
4572 | ||
4573 | 2007-10-07 Kazu Hirata <kazu@codesourcery.com> | |
4574 | ||
4575 | * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly | |
4576 | syntax for ASSEMBLER_DIALECT. | |
4577 | * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. | |
4578 | ||
4579 | 2007-10-06 Eric Botcazou <ebotcazou@adacore.com> | |
4580 | Nathan Froyd <froydnj@codesourcery.com> | |
4581 | ||
4582 | * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO | |
4583 | when determining whether to record INCOMING_RETURN_ADDR_RTX. | |
4584 | ||
4585 | 2007-10-06 Eric Botcazou <ebotcazou@adacore.com> | |
4586 | ||
4587 | Revert: | |
4588 | 2007-02-12 Eric Botcazou <ebotcazou@adacore.com> | |
4589 | ||
4590 | * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. | |
4591 | * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on | |
4592 | the function, temporarily point the debug interface to the null one. | |
4593 | ||
4594 | 2007-10-06 Alexandre Oliva <aoliva@redhat.com> | |
4595 | ||
4596 | PR tree-optimization/33655 | |
4597 | PR middle-end/22156 | |
4598 | * tree-sra.c (bitfield_overlaps_p): Handle array and complex elements. | |
4599 | ||
4600 | 2007-10-06 Alexandre Oliva <aoliva@redhat.com> | |
4601 | ||
4602 | PR tree-optimization/33572 | |
4603 | * tree-cfg.c (verify_stmts): Check for missing PHI defs. | |
4604 | * tree-inline.c (update_ssa_across_eh_edges): Renamed to... | |
4605 | (update_ssa_across_abnormal_edges): ... this. Set slots in the | |
4606 | return PHI node. | |
4607 | (copy_edges_for_bb): Handle nonlocal label edges. | |
4608 | (make_nonlocal_label_edges): Deleted. | |
4609 | (optimize_inline_calls): Don't call it. | |
4610 | ||
4611 | 2007-10-05 Hans-Peter Nilsson <hp@axis.com> | |
4612 | ||
4613 | * gthr-single.h: Revert last change. | |
4614 | ||
4615 | 2007-10-05 Michael Matz <matz@suse.de> | |
4616 | ||
4617 | PR middle-end/33667 | |
4618 | * lower-subreg.c (decompose_multiword_subregs): Use | |
4619 | validate_unshare_change(). | |
4620 | ||
4621 | 2007-10-05 Peter Bergner <bergner@vnet.ibm.com> | |
4622 | ||
4623 | * ra-conflict.c: Include "sparseset.h". | |
4624 | (conflicts): Change to HOST_WIDEST_FAST_INT. | |
4625 | (allocnos_live): Redefine variable as a sparseset. | |
4626 | (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): | |
4627 | Delete macros. | |
4628 | (allocno_row_words): Removed global variable. | |
4629 | (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables. | |
4630 | (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines. | |
4631 | (conflict_p, set_conflict_p, set_conflicts_p): New functions. | |
4632 | (record_one_conflict_between_regnos): Cache allocno values and reuse. | |
4633 | Use set_conflict_p. | |
4634 | (record_one_conflict): Update uses of allocnos_live to use | |
4635 | the sparseset routines. Use set_conflicts_p. | |
4636 | (mark_reg_store): Likewise. | |
4637 | (set_reg_in_live): Likewise. | |
4638 | (global_conflicts): Update uses of allocnos_live. | |
4639 | Use the new adjacency list to visit an allocno's neighbors | |
4640 | rather than iterating over all possible allocnos. | |
4641 | Call set_conflicts_p to setup conflicts rather than adding | |
4642 | them manually. | |
4643 | * global.c: Comments updated. | |
4644 | (CONFLICTP): Delete define. | |
4645 | (regno_compare): New function. Add prototype. | |
4646 | (global_alloc): Sort the allocno to regno mapping according to | |
4647 | which basic blocks the regnos are referenced in. Modify the | |
4648 | conflict bit matrix to a compressed triangular bitmatrix. | |
4649 | Only allocate the conflict bit matrix and adjacency lists if | |
4650 | we are actually going to allocate something. | |
4651 | (expand_preferences): Use conflict_p. Update uses of allocnos_live. | |
4652 | (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an | |
4653 | allocno's neighbors rather than iterating over all possible allocnos. | |
4654 | (mirror_conflicts): Removed function. | |
4655 | (dump_conflicts): Iterate over regnos rather than allocnos so | |
4656 | that all dump output will be sorted by regno number. | |
4657 | Use the FOR_EACH_CONFLICT macro. | |
4658 | * ra.h: Comments updated. | |
4659 | (conflicts): Update prototype to HOST_WIDEST_FAST_INT. | |
4660 | (partial_bitnum, max_bitnum, adjacency, adjacency_pool): | |
4661 | Add prototypes. | |
4662 | (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines. | |
4663 | (adjacency_list_d, adjacency_iterator_d): New types. | |
4664 | (add_neighbor, adjacency_iter_init, adjacency_iter_done, | |
4665 | adjacency_iter_next, regno_basic_block): New static inline functions. | |
4666 | (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define. | |
4667 | (conflict_p): Add function prototype. | |
4668 | * sparseset.h, sparseset.c: New files. | |
4669 | * Makefile.in (OBJS-common): Add sparseset.o. | |
4670 | (sparseset.o): New rule. | |
4671 | ||
4672 | 2007-10-05 Richard Guenther <rguenther@suse.de> | |
4673 | ||
4674 | PR middle-end/33666 | |
4675 | * fold-const.c (fold_unary): Do not fold (long long)(int)ptr | |
4676 | to (long long)ptr. | |
4677 | ||
4678 | 2007-10-05 Michael Matz <matz@suse.de> | |
4679 | ||
4680 | PR inline-asm/33600 | |
4681 | * function.c (match_asm_constraints_1): Check for input | |
4682 | being used in the outputs. | |
4683 | ||
4684 | 2007-10-05 Richard Guenther <rguenther@suse.de> | |
4685 | ||
4686 | * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF. | |
4687 | ||
4688 | 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk> | |
4689 | ||
4690 | PR target/33635 | |
4691 | * config/mips/mips.c (mips_register_move_cost): Rewrite to use | |
4692 | subset checks. Make the cost of FPR -> FPR moves depend on | |
4693 | mips_mode_ok_for_mov_fmt_p. | |
4694 | ||
4695 | 2007-10-04 Doug Kwan <dougkwan@google.com> | |
4696 | ||
4697 | * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait, | |
4698 | __gthread_cond_wait_recursive): Add to extend interface for POSIX | |
4699 | conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify | |
4700 | support of conditional variables. | |
4701 | * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait, | |
4702 | __gthread_cond_wait_recursive): Add to extend interface for POSIX | |
4703 | conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify | |
4704 | support of conditional variables. | |
4705 | * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait, | |
4706 | __gthread_cond_wait_recursive): Add to extend interface for POSIX | |
4707 | conditional variables. | |
4708 | * gthr.h: Update comments to document new interface. | |
4709 | ||
4710 | 2007-10-04 Geoffrey Keating <geoffk@apple.com> | |
4711 | ||
4712 | * cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P. | |
4713 | ||
4714 | 2007-10-04 Anatoly Sokolov <aesok@post.ru> | |
4715 | ||
4716 | * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P. | |
4717 | ||
4718 | 2007-10-04 Richard Guenther <rguenther@suse.de> | |
4719 | ||
4720 | PR middle-end/33641 | |
4721 | * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR | |
4722 | does not need to be of INTEGER_TYPE. | |
4723 | (verify_gimple_2): New function split out from ... | |
4724 | (verify_gimple_1): ... here. ICE if there was an error during | |
4725 | verification. | |
4726 | ||
4727 | 2007-10-04 Michael Matz <matz@suse.de> | |
4728 | ||
4729 | PR rtl-optimization/33653 | |
4730 | * dce.c (deletable_insn_p_1): Use volatile_refs_p(). | |
4731 | * dse.c (scan_insn): Same. | |
4732 | ||
4733 | 2007-10-04 Kazu Hirata <kazu@codesourcery.com> | |
4734 | ||
4735 | * config.gcc: Remove USE_GAS for m68k targets. | |
4736 | ||
4737 | 2007-10-04 Richard Guenther <rguenther@suse.de> | |
4738 | ||
4739 | PR tree-optimization/33627 | |
4740 | * tree-gimple.h (canonicalize_cond_expr_cond): Declare. | |
4741 | * tree-gimple.c (canonicalize_cond_expr_cond): New function, | |
4742 | split out from ... | |
4743 | * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here. | |
4744 | * tree-ssa-ifcombine.c (ifcombine_iforif): Use it. | |
4745 | ||
4746 | 2007-10-04 Anatoly Sokolov <aesok@post.ru> | |
4747 | ||
4748 | * config/avr/avr.c (commands_in_file, commands_in_prologues, | |
4749 | commands_in_epilogues): Remove variables. | |
4750 | (avr_file_start): Remove unneded initializations of commands_in_file, | |
4751 | commands_in_prologues and commands_in_epilogues variables. | |
4752 | (avr_file_end): Remove dead code. | |
4753 | ||
4754 | 2007-10-04 Kazu Hirata <kazu@codesourcery.com> | |
4755 | ||
4756 | * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if | |
4757 | MOTOROLA is to true. | |
4758 | ||
4759 | 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk> | |
4760 | ||
4761 | PR target/33635 | |
4762 | * config/mips/mips-protos.h (mips_split_64bit_move): Rename to... | |
4763 | (mips_split_doubleword_move): ...this. | |
4764 | * config/mips/mips.c (mips_subword): Extend to handle 64-bit words; | |
4765 | use natural endianness for multi-format FPR values. | |
4766 | (mips_split_64bit_move): Rename to... | |
4767 | (mips_split_doubleword_move): ...this and extend to 64-bit words. | |
4768 | Use move_doubleword_fpr* patterns for moves involving FPRs. | |
4769 | (mips_save_reg): Update the call to mips_split_64bit_move. | |
4770 | (mips_secondary_reload_class): Return NO_REGS for any reload of a | |
4771 | nonzero constant into an FPR if the constant can be forced to memory. | |
4772 | * config/mips/mips.md: Update the splitter calls to | |
4773 | mips_split_64bit_move. | |
4774 | (UNSPEC_LOAD_DF_LOW): Rename to... | |
4775 | (UNSPEC_LOAD_LOW): ...this. | |
4776 | (UNSPEC_LOAD_DF_HIGH): Rename to... | |
4777 | (UNSPEC_LOAD_HIGH): ...this. | |
4778 | (UNSPEC_STORE_DF_HIGH): Rename to... | |
4779 | (UNSPEC_STORE_WORD): ...this. | |
4780 | (SPLITF): New mode iterator. | |
4781 | (HALFMODE): New mode attribute. | |
4782 | (movtf): New expander. | |
4783 | (*movtf_internal): New define_insn_and_split. | |
4784 | (move_doubleword_fpr<mode>): New expander. | |
4785 | (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace | |
4786 | with... | |
4787 | (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>) | |
4788 | (mfhc1<mode>): ...these more general patterns. | |
4789 | ||
4790 | 2007-10-03 Alexandre Oliva <aoliva@redhat.com> | |
4791 | ||
4792 | * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end. | |
4793 | ||
4794 | 2007-10-03 Alexandre Oliva <aoliva@redhat.com> | |
4795 | ||
4796 | * gcse.c (hash_scan_set): Insert set in insn before note at | |
4797 | the end of basic block. | |
4798 | ||
4799 | 2007-10-03 Sebastian Pop <sebastian.pop@amd.com> | |
4800 | ||
4801 | PR tree-optimization/33576 | |
4802 | * testsuite/gcc.dg/tree-ssa/pr33576.c: New. | |
4803 | * tree-loop-linear.c (linear_transform_loops): Call remove_iv. | |
4804 | * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter. | |
4805 | (remove_iv): Declared. | |
4806 | * lambda-code.c (remove_iv): Not static. | |
4807 | (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs. | |
4808 | Don't remove ivs there, save ivs in the buffer. | |
4809 | ||
4810 | 2007-10-03 Jason Merrill <jason@redhat.com> | |
4811 | ||
4812 | PR c++/15764 | |
4813 | * tree-eh.c (same_handler_p): New fn. | |
4814 | (optimize_double_finally): New fn. | |
4815 | (refactor_eh_r): New fn. | |
4816 | (refactor_eh): New fn. | |
4817 | (pass_refactor_eh): New pass. | |
4818 | * tree-pass.h: Declare it. | |
4819 | * passes.c (init_optimization_passes): Add it. | |
4820 | ||
4821 | 2007-10-03 Doug Kwan <dougkwan@google.com> | |
4822 | Richard Guenther <rguenther@suse.de> | |
4823 | ||
4824 | PR debug/31899 | |
4825 | * dwarf2out.c (reference_to_unused): Disable sanity checking, | |
4826 | be conservative instead. | |
4827 | ||
4828 | 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
4829 | ||
4830 | PR fortran/26682 | |
4831 | * doc/invoke.texi (-fwhole-program): Document that Fortran | |
4832 | doesn't support this option. | |
4833 | ||
4834 | 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk> | |
4835 | ||
4836 | PR middle-end/33617 | |
4837 | * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to expand_expr. | |
4838 | ||
4839 | 2007-10-02 David Daney <ddaney@avtrex.com> | |
4840 | ||
4841 | * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare | |
4842 | against constant zero. | |
4843 | * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero | |
4844 | operand. | |
4845 | ||
4846 | 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com> | |
4847 | ||
4848 | * ra-conflict.c: New file. | |
4849 | * ra.h: New file. | |
4850 | * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE | |
4851 | usage to DF_LIVE usage. | |
4852 | (reload): Remove reference to df_get_live_top. | |
4853 | * rtlanal.c (subreg_nregs_with_regno): New function. | |
4854 | * df-scan.c (df_def_record_1, df_uses_record): Add code to set | |
4855 | DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags. | |
4856 | (df_has_eh_preds): Removed. | |
4857 | (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect, | |
4858 | df_exit_block_uses_collect): Changed call from df_has_eh_preds to | |
4859 | bb_has_eh_pred. | |
4860 | * global.c (allocno, max_allocno, conflicts, allocno_row_words, | |
4861 | reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h | |
4862 | (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c. | |
4863 | (regs_set, record_one_conflict, record_conflicts, mark_reg_store, | |
4864 | mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted. | |
4865 | (global_alloc): Turn off rescanning insns after call to | |
4866 | global_conflicts and added call to set_preferences. | |
4867 | (global_conflicts): Moved to ra-alloc.c. | |
4868 | (set_preferences_1, set_preferences): New function. | |
4869 | (mirror_conflicts): Changed types for various variables. | |
4870 | (mark_elimination): Change DF_RA_LIVE | |
4871 | usage to DF_LIVE usage. | |
4872 | (build_insn_chain): Rewritten from scratch and made local. | |
4873 | (print_insn_chain, print_insn_chains): New functions. | |
4874 | (dump_conflicts): Do not print conflicts for fixed_regs. | |
4875 | (rest_of_handle_global_alloc): Turn off insn rescanning. | |
4876 | * hard-reg-set.h: Fixed comment. | |
4877 | * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE | |
4878 | usage to DF_LIVE usage and delete refs to TOP sets. | |
4879 | (block_alloc): Mark regs as live if they are in the artificial | |
4880 | defs at top of block. | |
4881 | (find_stack_regs): New function. | |
4882 | (rest_of_handle_local_alloc): Changed urec problem to live | |
4883 | problem and do not turn off df rescanning. | |
4884 | * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN, | |
4885 | DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec, | |
4886 | df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed. | |
4887 | (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered. | |
4888 | (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New | |
4889 | fields in df_ref_flags. The rest have been renumbered. | |
4890 | * init-regs.c (initialize_uninitialized_regs): Enhanced debugging | |
4891 | at -O1. | |
4892 | * rtl.h (subreg_nregs_with_regno): New function. | |
4893 | * df-problems.c: (df_get_live_out, df_get_live_in, | |
4894 | df_get_live_top): Removed reference to DF_RA_LIVE. | |
4895 | (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info, | |
4896 | df_live_alloc, df_live_reset, df_live_local_finalize, | |
4897 | df_live_free): Make top set only if different from in set. | |
4898 | (df_lr_top_dump, df_live_top_dump): Only print top set if | |
4899 | different from in set. | |
4900 | (df_lr_bb_local_compute): Removed unnecessary check. | |
4901 | (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, | |
4902 | df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, | |
4903 | df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber, | |
4904 | df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, | |
4905 | df_urec_local_compute, df_urec_init, df_urec_local_finalize, | |
4906 | df_urec_confluence_n, df_urec_transfer_function, df_urec_free, | |
4907 | df_urec_top_dump, df_urec_bottom_dump, problem_UREC, | |
4908 | df_urec_add_problem): Removed. | |
4909 | (df_simulate_fixup_sets): Changed call from df_has_eh_preds to | |
4910 | bb_has_eh_pred. | |
4911 | * Makefile.in (ra-conflict.o, ra.h): New dependencies. | |
4912 | * basic_block.h (bb_has_abnormal_pred): New function. | |
4913 | * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE | |
4914 | usage to DF_LIVE usage. | |
4915 | ||
4916 | 2007-10-02 Revital Eres <eres@il.ibm.com> | |
4917 | ||
4918 | * config/rs6000/predicates.md (easy_vector_constant): Return false | |
4919 | for 750CL paired vectors. | |
4920 | * config/rs6000/paired.md (movv2sf_paired): Fix move of easy | |
4921 | vector constant. | |
4922 | (vec_initv2sf): Add new description. | |
4923 | (vconcatsf): Likewise. | |
4924 | * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init. | |
4925 | * config/rs6000/rs6000.c (paired_expand_vector_init): New function. | |
4926 | ||
4927 | 2007-10-01 Alexandre Oliva <aoliva@redhat.com> | |
4928 | ||
4929 | * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after | |
4930 | sinking the last stmt in a BB. | |
4931 | ||
4932 | 2007-10-01 Alexandre Oliva <aoliva@redhat.com> | |
4933 | ||
4934 | PR middle-end/22156 | |
4935 | * tree-sra.c (struct sra_elt): Add in_bitfld_block. | |
4936 | (sra_hash_tree): Handle BIT_FIELD_REFs. | |
4937 | (sra_elt_hash): Don't hash bitfld blocks. | |
4938 | (sra_elt_eq): Skip them in parent compares as well. Handle | |
4939 | BIT_FIELD_REFs. | |
4940 | (build_element_name_1): Handle BIT_FIELD_REFs. | |
4941 | (instantiate_element): Propagate nowarn from parents. Create | |
4942 | BIT_FIELD_REF for variables that are widened by scalarization. | |
4943 | Gimple-zero-initialize all bit-field variables that are not | |
4944 | part of parameters that are going to be scalarized on entry. | |
4945 | (instantiate_missing_elements_1): Return the sra_elt. | |
4946 | (canon_type_for_field): New. | |
4947 | (try_instantiate_multiple_fields): New. Infer widest possible | |
4948 | access mode from decl or member type, but clip it at word | |
4949 | size, and only widen it if a field crosses an alignment boundary. | |
4950 | (instantiate_missing_elements): Use them. | |
4951 | (generate_one_element_ref): Handle BIT_FIELD_REFs. | |
4952 | (scalar_bitfield_p): New. | |
4953 | (sra_build_assignment): Optimize assignments from scalarizable | |
4954 | BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift counts. | |
4955 | (REPLDUP): New. | |
4956 | (sra_build_bf_assignment): New. Optimize assignments to | |
4957 | scalarizable BIT_FIELD_REFs. | |
4958 | (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF | |
4959 | assignments to full variables. | |
4960 | (generate_copy_inout): Use the new macros and functions. | |
4961 | (generate_element_copy): Likewise. Handle bitfld differences. | |
4962 | (generate_element_zero): Don't recurse for blocks. Use | |
4963 | sra_build_elt_assignment. | |
4964 | (generate_one_element_init): Take elt instead of var. Use | |
4965 | sra_build_elt_assignment. | |
4966 | (generate_element_init_1): Adjust. | |
4967 | (bitfield_overlap_info): New struct. | |
4968 | (bitfield_overlaps_p): New. | |
4969 | (sra_explode_bitfield_assignment): New. Adjust widened | |
4970 | variables to account for endianness. | |
4971 | (sra_sync_for_bitfield_assignment): New. | |
4972 | (scalarize_use): Re-expand assignment to/from scalarized | |
4973 | BIT_FIELD_REFs. Explode or sync needed members for | |
4974 | BIT_FIELD_REFs accesses or assignments. Use REPLDUP. | |
4975 | (scalarize_copy): Use REPLDUP. | |
4976 | (scalarize_ldst): Move assert before dereference. Adjust EH handling. | |
4977 | (dump_sra_elt_name): Handle BIT_FIELD_REFs. | |
4978 | ||
4979 | 2007-10-01 Paolo Bonzini <bonzini@gnu.org> | |
4980 | ||
4981 | * simplify-rtx.c (comparison_result, simplify_relational_operation_1): | |
4982 | Rename CR_* constants to CMP_*. Fix spacing. | |
4983 | ||
4984 | 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4985 | ||
4986 | PR other/33585 | |
4987 | * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs | |
4988 | to be processed with the special script doc/install.texi2html. | |
4989 | ||
4990 | 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
4991 | ||
4992 | * doc/invoke.texi (Wall): List the options enabled by Wall. | |
4993 | (Wstrict-aliasing): Add missing @option. | |
4994 | ||
4995 | 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk> | |
4996 | ||
4997 | * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset | |
4998 | rather than gen_lowpart to change a register from DImode to DFmode. | |
4999 | (mips_cannot_change_mode_class): Only allow FPRs to change mode if | |
5000 | both FROM and TO are integer modes that are no bigger than 4 bytes. | |
5001 | (mips_mode_ok_for_mov_fmt_p): New function. | |
5002 | (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P. | |
5003 | (mips_secondary_reload_class): Tweak formatting and comments. | |
5004 | Use reg_class_subset_p instead of direct comparisons with | |
5005 | classes. Only allow direct FPR<->FPR moves for modes that | |
5006 | satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores | |
5007 | for 4- and 8-byte types. Handle reloads in which X is an FPR. | |
5008 | * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative. | |
5009 | (*movdi_64bit): Likewise. | |
5010 | (*movsi_internal): Likewise. | |
5011 | (*movhi_internal): Likewise. | |
5012 | (*movqi_internal): Likewise. | |
5013 | ||
5014 | 2007-09-30 Diego Novillo <dnovillo@google.com> | |
5015 | ||
5016 | PR 33593 | |
5017 | * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may | |
5018 | throw an exception. | |
5019 | ||
5020 | 2007-09-30 Uros Bizjak <ubizjak@gmail.com> | |
5021 | ||
5022 | PR tree-optimization/33597 | |
5023 | * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler | |
5024 | for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode. | |
5025 | ||
5026 | 2007-09-28 Uros Bizjak <ubizjak@gmail.com> | |
5027 | ||
5028 | * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p () | |
5029 | instead of variants of (!reload_in_progress && !reload_completed). | |
5030 | (x86_expand_vector_move): Ditto. | |
5031 | ||
5032 | 2007-09-28 Ollie Wild <aaw@google.com> | |
5033 | ||
5034 | Revert | |
5035 | 2007-09-27 Ollie Wild <aaw@google.com> | |
5036 | ||
5037 | * varasm.c (compare_constant): Removed call to | |
5038 | lang_hooks.expand_constant. | |
5039 | (copy_constants): Removed call to lang_hooks.expand_constant. | |
5040 | (compute_reloc_for_constant): Removed call to | |
5041 | lang_hooks.expand_constant. | |
5042 | (output_addressed_constants): Removed call to | |
5043 | lang_hooks.expand_constant. | |
5044 | (constructor_static_from_elts_p): Removed call to | |
5045 | lang_hooks.expand_constant. | |
5046 | (output_constant): Removed calls to lang_hooks.expand_constant. | |
5047 | * langhooks.h (struct lang_hooks): Removed field expand_constant. | |
5048 | * langhooks-def.h (lhd_return_tree): Removed. | |
5049 | (LANG_HOOKS_EXPAND_CONSTANT): Removed. | |
5050 | (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. | |
5051 | * langhooks.c (lhd_return_tree): Removed. | |
5052 | ||
5053 | 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
5054 | ||
5055 | PR target/33347 | |
5056 | * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second | |
5057 | argument to gen_selb. | |
5058 | ||
5059 | 2007-09-28 Chao-ying Fu <fu@mips.com> | |
5060 | ||
5061 | * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section. | |
5062 | * doc/libgcc.texi (Fixed-point fractional library routines): | |
5063 | Fix typos for neg and cmp functions. | |
5064 | ||
5065 | 2007-09-28 Michael Matz <matz@suse.de> | |
5066 | ||
5067 | PR rtl-optimization/33552 | |
5068 | * function.c (match_asm_constraints_1): Check for overlap in | |
5069 | inputs and replace all occurences. | |
5070 | ||
5071 | 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk> | |
5072 | ||
5073 | * config/mips/mips.c (override_options): Fix comment typo. | |
5074 | ||
5075 | 2007-09-28 Jie Zhang <jie.zhang@analog.com> | |
5076 | ||
5077 | * config.gcc (bfin*-linux-uclibc*): Set extra_parts | |
5078 | to "crtbegin.o crtbeginS.o crtend.o crtendS.o". | |
5079 | * config/bfin/t-bfin-linux (crti.o): Don't build. | |
5080 | (crtn.o): Likewise. | |
5081 | (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. | |
5082 | * config/bfin/t-bfin-uclinux (crti.o): Don't build. | |
5083 | (crtn.o): Likewise. | |
5084 | (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. | |
5085 | ||
5086 | 2007-09-27 Ollie Wild <aaw@google.com> | |
5087 | ||
5088 | * varasm.c (compare_constant): Removed call to | |
5089 | lang_hooks.expand_constant. | |
5090 | (copy_constants): Removed call to lang_hooks.expand_constant. | |
5091 | (compute_reloc_for_constant): Removed call to | |
5092 | lang_hooks.expand_constant. | |
5093 | (output_addressed_constants): Removed call to | |
5094 | lang_hooks.expand_constant. | |
5095 | (constructor_static_from_elts_p): Removed call to | |
5096 | lang_hooks.expand_constant. | |
5097 | (output_constant): Removed calls to lang_hooks.expand_constant. | |
5098 | * langhooks.h (struct lang_hooks): Removed field expand_constant. | |
5099 | * langhooks-def.h (lhd_return_tree): Removed. | |
5100 | (LANG_HOOKS_EXPAND_CONSTANT): Removed. | |
5101 | (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. | |
5102 | * langhooks.c (lhd_return_tree): Removed. | |
5103 | ||
5104 | 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
5105 | ||
5106 | PR middle-end/33436 | |
5107 | * expr.c (emit_group_load_1): Split constant double when destination | |
5108 | length is half source length. | |
5109 | ||
5110 | 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk> | |
5111 | ||
5112 | * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro. | |
5113 | (mips_cpu_info): Add tune_flags. | |
5114 | (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check. | |
5115 | * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields. | |
5116 | Remove end marker. | |
5117 | (override_options): Remove deprecation code. Use branch-likely | |
5118 | instructions for optimize_size or if the tuning flags do not | |
5119 | suggest otherwise. Tweak warning. | |
5120 | (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE. | |
5121 | ||
5122 | 2007-09-27 Matthias Klose <doko@ubuntu.com> | |
5123 | ||
5124 | * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the | |
5125 | multilib osdirname if it exists. | |
5126 | * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise. | |
5127 | ||
5128 | 2007-09-27 Ian Lance Taylor <iant@google.com> | |
5129 | ||
5130 | PR tree-optimization/33565 | |
5131 | * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on | |
5132 | assignments of comparisons. | |
5133 | * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt | |
5134 | parameter. Change caller. Defer overflow warnings around call to | |
5135 | fold_binary. | |
5136 | * fold-const.c (fold_undefer_overflow_warnings): Don't warn if | |
5137 | TREE_NO_WARNING is set on the statement. | |
5138 | * tree-ssa-forwprop.c | |
5139 | (tree_ssa_forward_propagate_single_use_vars): Don't test | |
5140 | TREE_NO_WARNING when calling fold_undefer_overflow_warnings. | |
5141 | * tree-cfg.c (fold_cond_expr_cond): Likewise. | |
5142 | ||
5143 | 2007-09-27 Joseph Myers <joseph@codesourcery.com> | |
5144 | ||
5145 | * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not | |
5146 | reduce offset by units of 0x10000 for SPE vector modes or modes | |
5147 | used with E500 double instructions. | |
5148 | ||
5149 | 2007-09-04 Paolo Bonzini <bonzini@gnu.org> | |
5150 | ||
5151 | * simplify-rtx.c (comparison_result): New. | |
5152 | (simplify_const_relational_operation): Use it instead of the five | |
5153 | "equal|op[01]ltu?" variables; consequently remove redundant "else"s. | |
5154 | Improve bounds-checking optimizations; remove subsumed POPCOUNT | |
5155 | optimizations. Extract nonzero_address_p optimizations into a | |
5156 | separate "if" together with optimizations where op1 is const0_rtx. | |
5157 | Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for | |
5158 | floating-point arguments too when appropriate. Hoist test for ABS | |
5159 | outside the final switch statement. | |
5160 | * cse.c (fold_rtx): Don't look for an IOR equivalent of | |
5161 | folded_arg0 if we found a constant equivalent. Remove | |
5162 | transformations done in simplify-rtx.c for "op0 RELOP op0". | |
5163 | ||
5164 | 2007-09-27 Jakub Jelinek <jakub@redhat.com> | |
5165 | ||
5166 | * builtins.c (expand_builtin, expand_builtin_object_size, | |
5167 | expand_builtin_memory_chk, maybe_emit_chk_warning, | |
5168 | maybe_emit_sprintf_chk_warning): Use new %K format string specifier | |
5169 | for diagnostics. | |
5170 | * expr.c (expand_expr_real_1): Likewise. | |
5171 | * langhooks-def.h (struct diagnostic_info): Add forward decl. | |
5172 | (lhd_print_error_function): Add third argument. | |
5173 | * langhooks.h (struct diagnostic_info): Add forward decl. | |
5174 | (struct lang_hooks): Add third argument to print_error_function. | |
5175 | * diagnostic.h (diagnostic_info): Add abstract_origin field. | |
5176 | (diagnostic_last_function_changed, diagnostic_set_last_function): Add | |
5177 | second argument. | |
5178 | (diagnostic_report_current_function): Likewise. | |
5179 | * toplev.c (announce_function): Pass NULL as second argument to | |
5180 | diagnostic_set_last_function. | |
5181 | * diagnostic.c (diagnostic_report_current_function): Add second | |
5182 | argument, pass it as third argument to lang_hooks.print_error_function. | |
5183 | (default_diagnostic_starter): Pass DIAGNOSTIC as second argument | |
5184 | to diagnostic_report_current_function. | |
5185 | (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin | |
5186 | and message.abstract_origin. | |
5187 | (verbatim): Initialize abstract_origin. | |
5188 | * pretty-print.h (text_info): Add abstract_origin field. | |
5189 | * pretty-print.c (pp_base_format): Handle %K. | |
5190 | * langhooks.c (lhd_print_error_function): Add third argument. If | |
5191 | diagnostic->abstract_origin, print virtual backtrace. | |
5192 | * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, | |
5193 | gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K. | |
5194 | (init_dynamic_diag_info): Likewise. | |
5195 | ||
5196 | 2007-09-26 David Daney <ddaney@avtrex.com> | |
5197 | ||
5198 | PR target/33479 | |
5199 | * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>, | |
5200 | sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>, | |
5201 | sync_old_nand<mode>, sync_new_nand<mode>, | |
5202 | sync_lock_test_and_set<mode>): Fix '&' constraint modifiers. | |
5203 | Update length attributes. | |
5204 | (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>, | |
5205 | sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update | |
5206 | length attributes. | |
5207 | * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, | |
5208 | MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, | |
5209 | MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add | |
5210 | post-loop sync. | |
5211 | ||
5212 | 2007-09-26 Richard Guenther <rguenther@suse.de> | |
5213 | ||
5214 | PR tree-optimization/33563 | |
5215 | * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ... | |
5216 | (get_kill_of_stmt_lhs): ... this. Re-structure. Handle | |
5217 | aggregate stores. | |
5218 | (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of | |
5219 | get_use_of_stmt_lhs. | |
5220 | ||
5221 | 2007-09-26 Joseph Myers <joseph@codesourcery.com> | |
5222 | ||
5223 | PR c/25309 | |
5224 | * c-common.c (complete_array_type): Diagnose too-large arrays and | |
5225 | set type to error_mark_node. | |
5226 | ||
5227 | 2007-09-26 Richard Guenther <rguenther@suse.de> | |
5228 | ||
5229 | PR tree-optimization/30375 | |
5230 | PR tree-optimization/33560 | |
5231 | * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses | |
5232 | with calls. | |
5233 | ||
5234 | Revert | |
5235 | 2006-05-22 Aldy Hernandez <aldyh@redhat.com> | |
5236 | ||
5237 | * tree-ssa-dse.c (aggregate_vardecl_d): New. | |
5238 | (dse_global_data): Add aggregate_vardecl field. | |
5239 | (dse_possible_dead_store_p): New. | |
5240 | Add prev_defvar variable. | |
5241 | Allow immediate uses and previous immediate uses to differ | |
5242 | if they are setting different parts of the whole. | |
5243 | (get_aggregate_vardecl): New. | |
5244 | (dse_record_partial_aggregate_store): New. | |
5245 | (dse_whole_aggregate_clobbered_p): New. | |
5246 | (dse_partial_kill_p): New. | |
5247 | Call dse_maybe_record_aggregate_store(). | |
5248 | When checking whether a STMT and its USE_STMT refer to the | |
5249 | same memory address, check also for partial kills that clobber | |
5250 | the whole. | |
5251 | Move some variable definitions to the block where they are used. | |
5252 | (aggregate_vardecl_hash): New. | |
5253 | (aggregate_vardecl_eq): New. | |
5254 | (aggregate_vardecl_free): New. | |
5255 | (aggregate_whole_store_p): New. | |
5256 | (tree_ssa_dse): Initialize and free aggregate_vardecl. | |
5257 | Mark which aggregate stores we care about. | |
5258 | ||
5259 | 2007-09-25 DJ Delorie <dj@redhat.com> | |
5260 | ||
5261 | PR target/33551 | |
5262 | * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT. | |
5263 | ||
5264 | 2007-09-25 Michael Meissner <michael.meissner@amd.com> | |
5265 | ||
5266 | PR target/33524 | |
5267 | * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call | |
5268 | gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di | |
5269 | for vector int32 -> int64 conversions. Don't write beyond the end | |
5270 | of the allocated vector for int32 -> int64 conversions. | |
5271 | ||
5272 | 2007-09-25 Revital Eres <eres@il.ibm.com> | |
5273 | ||
5274 | * config/rs6000/paired.h (paired_sel): New. | |
5275 | * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4. | |
5276 | (rs6000_expand_ternop_builtin): Pass zero const_double operand | |
5277 | when expanding selv2sf. | |
5278 | * config/rs6000/rs6000.h (rs6000_builtins): Add | |
5279 | PAIRED_BUILTIN_SELV2SF4. | |
5280 | ||
5281 | 2007-09-25 Joseph Myers <joseph@codesourcery.com> | |
5282 | ||
5283 | PR c/32295 | |
5284 | * c-typeck.c (default_conversion): Call require_complete_type | |
5285 | before perform_integral_promotions. | |
5286 | (build_unary_op): Call require_complete_type except for ADDR_EXPR. | |
5287 | (build_c_cast): Call require_complete_type except for casts to | |
5288 | void types. | |
5289 | (convert_for_assignment): Call require_complete_type. | |
5290 | ||
5291 | 2007-09-25 Revital Eres <eres@il.ibm.com> | |
5292 | ||
5293 | * config/spu/spu.md: Fix doloop pattern. | |
5294 | ||
5295 | 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com> | |
5296 | ||
5297 | * config/bfin/bfin.c (expand_prologue_reg_save, | |
5298 | expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs | |
5299 | and ASTAT moved here... | |
5300 | (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): | |
5301 | ... from here. New argument ALL; callers changed. | |
5302 | (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions. | |
5303 | (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that | |
5304 | have the "saveall" attribute. | |
5305 | ||
5306 | 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com> | |
5307 | ||
5308 | * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define | |
5309 | bogus target macro. | |
5310 | (INCOMING_REGNO, OUTGOING_REGNO): Define. | |
5311 | * config/mmix/mmix.c (mmix_opposite_regno): New function. | |
5312 | * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype. | |
5313 | ||
5314 | * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate | |
5315 | with REG_P tests before REGNO access. | |
5316 | ||
5317 | 2007-09-24 DJ Delorie <dj@redhat.com> | |
5318 | ||
5319 | PR target/31482 | |
5320 | * config/m32c/cond.md (stzx_reversed_<mode>): Add an output | |
5321 | constraint. | |
5322 | (movqicc_<code>_<mode>): Likewise. | |
5323 | (movhicc_<code>_<mode>): Likewise. | |
5324 | ||
5325 | 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
5326 | ||
5327 | PR target/33184 | |
5328 | * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address | |
5329 | register for reload. | |
5330 | ||
5331 | 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net> | |
5332 | ||
5333 | PR c++/14688 | |
5334 | * config/i386/i386.c (ix86_comp_type_attributes): Check | |
5335 | METHOD_TYPE too. | |
5336 | ||
5337 | 2007-09-24 Roman Zippel <zippel@linux-m68k.org> | |
5338 | ||
5339 | * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use | |
5340 | "move.l %a4,%a4" to produce nops. | |
5341 | * config/m68k/m68k.c (override_options): Reset align options, | |
5342 | if neccessary align macro isn't avaible. | |
5343 | ||
5344 | 2007-09-24 Roman Zippel <zippel@linux-m68k.org> | |
5345 | ||
5346 | config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New. | |
5347 | ||
5348 | 2007-09-24 Roman Zippel <zippel@linux-m68k.org> | |
5349 | ||
5350 | * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave | |
5351 | the basic block. | |
5352 | * config/m68k/m68k.md (movsi_m68k): Allow certain constant when | |
5353 | reload is completed. | |
5354 | (peephole pattern): Convert most of them to RTL peephole pattern. | |
5355 | ||
5356 | 2007-09-24 Roman Zippel <zippel@linux-m68k.org> | |
5357 | ||
5358 | * config/m68k/m68k.c (notice_update_cc): Recognize fp compare | |
5359 | (moved from fp compare patterns). | |
5360 | * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf): | |
5361 | Cleanup predicates to relieve reload. | |
5362 | (conditional_trap): Reject conditional trap with fp condition. | |
5363 | * config/m68k/predicates.md (fp_src_operand): New, reject | |
5364 | certain constants early. | |
5365 | ||
5366 | 2007-09-24 Roman Zippel <zippel@linux-m68k.org> | |
5367 | ||
5368 | * final.c (final_scan_insn): Remove accidentally duplicated code. | |
5369 | ||
5370 | 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
5371 | ||
5372 | * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU. | |
5373 | Allow --with-tune=cell and --with-cpu=cell. | |
5374 | ||
5375 | 2007-09-24 David Edelsohn <edelsohn@gnu.org> | |
5376 | ||
5377 | * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare. | |
5378 | * config/rs6000/rs6000.opt (swdiv): Change option to ... | |
5379 | (recip): this. | |
5380 | * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New | |
5381 | function. | |
5382 | (TARGET_BUILTIN_RECIPROCAL): Use it. | |
5383 | (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf. | |
5384 | (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf. | |
5385 | (rs6000_emit_swrsqrtsf): New. | |
5386 | * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and | |
5387 | rsqrtf. | |
5388 | * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define. | |
5389 | (divsf3): Remove swdiv support. | |
5390 | (recipsf3): New. | |
5391 | (rsqrtsf2): New. | |
5392 | (rsqrt_internal1): New. | |
5393 | (divdf3): Remove swdiv support. | |
5394 | (reciptdf3): New. | |
5395 | ||
5396 | 2007-09-24 Jakub Jelinek <jakub@redhat.com> | |
5397 | ||
5398 | PR c++/33506 | |
5399 | * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq | |
5400 | field. | |
5401 | * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define. | |
5402 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ. | |
5403 | * tree.c (type_hash_eq): For FUNCTION_TYPE use | |
5404 | lang_hooks.type.type_hash_eq in addition to generic tests. | |
5405 | ||
5406 | 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com> | |
5407 | Ramana Radhakrishnan <ramana@hercules.pun.celunite.com> | |
5408 | ||
5409 | * tree-inline.h (eni_weights): Add field target_builtin_cost to | |
5410 | reflect the cost per call to a target specific builtin. | |
5411 | * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a | |
5412 | call to a target specific builtin, then use target_builtin_call_cost. | |
5413 | (init_inline_once): Initialize target_builtin_call_cost field. | |
5414 | ||
5415 | 2007-09-24 Kai Tietz <kai.tietz@onevision.com> | |
5416 | ||
5417 | PR middle-end/33472 | |
5418 | * config/i386/i386.c (return_in_memory_ms_64): Handle return types for | |
5419 | complex types. | |
5420 | ||
5421 | 2007-09-23 H.J. Lu <hongjiu.lu@intel.com> | |
5422 | ||
5423 | * configure.ac (ld_vers): Support GNU linker version xx.xx.* | |
5424 | * configure: Regenerated. | |
5425 | ||
5426 | 2007-09-23 Ollie Wild <aaw@google.com> | |
5427 | ||
5428 | * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer | |
5429 | operand. | |
5430 | (get_pointer_modulus_and_residue): New function. | |
5431 | ||
5432 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5433 | ||
5434 | * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets, | |
5435 | combine an SC return value into a single register. | |
5436 | ||
5437 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5438 | ||
5439 | * opth-gen.awk (target_flags_explicit): Declare. | |
5440 | * toplev.h (target_flags_explicit): Delete declaration. | |
5441 | * toplev.c (target_flags): Likewise. | |
5442 | * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete. | |
5443 | (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags. | |
5444 | Never return true for TARGET_MIPS16. | |
5445 | * config/mips/mips.c (mips_llsc): Delete. | |
5446 | (mips_handle_option): Remove -mllsc handling. | |
5447 | (mips_strip_unspec_address): Tweak comment. | |
5448 | * config/mips/mips.opt (mllsc): Use a target mask. | |
5449 | ||
5450 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5451 | ||
5452 | * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to | |
5453 | word_mode as well as Pmode. | |
5454 | ||
5455 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5456 | ||
5457 | * function.c (assign_parm_setup_block): Explicitly convert BLKmode | |
5458 | parameters from word_mode to the subword type if such a truncation | |
5459 | is not a no-op. | |
5460 | ||
5461 | 2007-09-23 Jakub Jelinek <jakub@redhat.com> | |
5462 | ||
5463 | * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above. | |
5464 | * configure: Regenerated. | |
5465 | ||
5466 | 2007-09-23 Jan Hubicka <jh@suse.cz> | |
5467 | ||
5468 | * params.def (INLINE_CALL_COST): Set to 12. | |
5469 | * invoke.texi (inline-call-cost): Update default value. | |
5470 | ||
5471 | 2007-09-23 Eric Botcazou <ebotcazou@adacore.com> | |
5472 | ||
5473 | * config/alpha/alpha.md (movti): Use operand_subword for the split. | |
5474 | ||
5475 | 2007-09-23 Ayal Zaks <zaks@il.ibm.com> | |
5476 | Revital Eres <eres@il.ibm.com> | |
5477 | ||
5478 | * modulo-sched.c (doloop_register_get): Rewrite the loop which | |
5479 | checks whether the count_reg is found outside the control part. | |
5480 | ||
5481 | 2007-09-23 Jakub Jelinek <jakub@redhat.com> | |
5482 | ||
5483 | * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl | |
5484 | instead of checking CALL_EXPR_FN directly to test for builtins. | |
5485 | If error or warning attributes are present, print | |
5486 | error resp. warning. | |
5487 | * c-common.c (handle_error_attribute): New function. | |
5488 | (c_common_attribute_table): Add error and warning | |
5489 | attributes. | |
5490 | * doc/extend.texi: Document error and warning attributes. | |
5491 | ||
5492 | * tree.h (block_nonartificial_location): New prototype. | |
5493 | * tree.c (block_nonartificial_location): New function. | |
5494 | * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial | |
5495 | if artificial attribute is present on abstract inline decl. | |
5496 | * c-common.c (handle_artificial_attribute): New function. | |
5497 | (c_common_attribute_table): Add artificial attribute. | |
5498 | * final.c (override_filename, override_linenum): New variables. | |
5499 | (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename | |
5500 | and override_linenum if inside of a block inlined from | |
5501 | __attribute__((__artificial__)) function. | |
5502 | (notice_source_line): Honor override_filename and override_linenum. | |
5503 | * doc/extend.texi: Document __attribute__((__artificial__)). | |
5504 | * config/i386/emmintrin.h: Add __artificial__ attribute to | |
5505 | all __always_inline__ functions. | |
5506 | * config/i386/mmintrin.h: Likewise. | |
5507 | * config/i386/tmmintrin.h: Likewise. | |
5508 | * config/i386/mm3dnow.h: Likewise. | |
5509 | * config/i386/pmmintrin.h: Likewise. | |
5510 | * config/i386/ammintrin.h: Likewise. | |
5511 | * config/i386/xmmintrin.h: Likewise. | |
5512 | * config/i386/smmintrin.h: Likewise. | |
5513 | * config/i386/bmmintrin.h: Likewise. | |
5514 | * config/i386/mmintrin-common.h: Likewise. | |
5515 | ||
5516 | PR middle-end/28755 | |
5517 | * expr.c (expand_constructor): New function. | |
5518 | (expand_expr_real_1) <case CONSTRUCTOR>: Call it. | |
5519 | (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is | |
5520 | CONSTRUCTOR. | |
5521 | ||
5522 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5523 | ||
5524 | * config/mips/mips.c (dump_constants_1): Generalize to include | |
5525 | fractional and accumulator modes. | |
5526 | ||
5527 | 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> | |
5528 | ||
5529 | * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros. | |
5530 | * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP | |
5531 | flags for MIPS16. | |
5532 | (override_options): Check TARGET_HARD_FLOAT_ABI instead of | |
5533 | TARGET_HARD_FLOAT when testing whether -mpaired-single is | |
5534 | supported. | |
5535 | (mips_conditional_register_usage): Check ISA_HAS_DSP instead of | |
5536 | TARGET_DSP. | |
5537 | * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of | |
5538 | TARGET_DSPR2. | |
5539 | * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF. | |
5540 | (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require | |
5541 | TARGET_HARD_FLOAT. | |
5542 | (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check | |
5543 | ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2. | |
5544 | * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP | |
5545 | throughout. | |
5546 | * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and | |
5547 | TARGET_HAS_DSPR2. | |
5548 | * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2 | |
5549 | instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2. | |
5550 | * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns. | |
5551 | ||
5552 | 2007-09-22 Jason Merrill <jason@redhat.com> | |
5553 | ||
5554 | PR c++/19407 | |
5555 | * attribs.c (lookup_attribute_spec): Split out... | |
5556 | (decl_attributes): From here. | |
5557 | * tree.h: Declare it. | |
5558 | ||
5559 | 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk> | |
5560 | ||
5561 | * doc/sourcebuild.texi: Document dg-add-options mips16_attribute. | |
5562 | ||
5563 | 2007-09-22 Eric Botcazou <ebotcazou@adacore.com> | |
5564 | ||
5565 | * tree-inline.c (remap_type_1): Correctly chain variants. | |
5566 | ||
5567 | 2007-09-22 Richard Guenther <rguenther@suse.de> | |
5568 | ||
5569 | PR tree-optimization/33146 | |
5570 | * fold-const.c (fold_binary): Use the original tree for negating. | |
5571 | * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer | |
5572 | also changes "sign". | |
5573 | ||
5574 | 2007-09-22 Eric Botcazou <ebotcazou@adacore.com> | |
5575 | ||
5576 | PR target/32325 | |
5577 | * except.c (finish_eh_generation): Call commit_edge_insertions if | |
5578 | there are insns queued on the entry edge. | |
5579 | * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on | |
5580 | the entry edge. | |
5581 | ||
5582 | 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk> | |
5583 | ||
5584 | * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. | |
5585 | ||
5586 | 2007-09-19 Michael Meissner <michael.meissner@amd.com> | |
5587 | ||
5588 | * config/i386/i386.c: Delete trailing whitespace. | |
5589 | * config/i386/i386.h: Ditto. | |
5590 | * config/i386/bmmintrin.h: Ditto. | |
5591 | * config/i386/sync.md: Ditto. | |
5592 | * config/i386/ppro.md: Ditto. | |
5593 | * config/i386/mmx.md: Ditto. | |
5594 | * config/i386/constraints.md: Ditto. | |
5595 | * config/i386/sse.md: Ditto. | |
5596 | * config/i386/athlon.md: Ditto. | |
5597 | * config/i386/i386.md: Ditto. | |
5598 | ||
5599 | 2007-09-21 Richard Guenther <rguenther@suse.de> | |
5600 | ||
5601 | PR tree-optimization/33508 | |
5602 | * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid | |
5603 | quadratic loop by keeping a bitmap of variables we have | |
5604 | to clobber all subvariables for. | |
5605 | (set_initial_properties): Likewise. | |
5606 | ||
5607 | 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk> | |
5608 | ||
5609 | * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete. | |
5610 | ||
5611 | 2007-09-20 Nigel Stephens <nigel@mips.com> | |
5612 | Chao-ying Fu <fu@mips.com> | |
5613 | ||
5614 | * c-decl.c (finish_declspecs): When _Sat is used without | |
5615 | _Fract or _Accum, set the default type to cts_fract. | |
5616 | This avoids a warning of "type defaults to int". | |
5617 | ||
5618 | 2007-09-20 Joseph Myers <joseph@codesourcery.com> | |
5619 | ||
5620 | * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool | |
5621 | bit-fields wider than one bit. | |
5622 | ||
5623 | 2007-09-20 Jakub Jelinek <jakub@redhat.com> | |
5624 | ||
5625 | PR debug/33316 | |
5626 | * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL | |
5627 | DECL_NAME. | |
5628 | * dbxout.c (dbxout_type): Likewise. | |
5629 | ||
5630 | PR c/33238 | |
5631 | PR c/27301 | |
5632 | * gimplify.c (gimplify_vla_decl): New function. | |
5633 | (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl. | |
5634 | Call it. | |
5635 | (gimplify_target_expr): Handle variable length TARGET_EXPRs. | |
5636 | ||
5637 | 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk> | |
5638 | ||
5639 | * doc/invoke.texi (-minterlink-mips16): Document. | |
5640 | * config/mips/mips.opt (minterlink-mips16): New option. | |
5641 | * config/mips/mips.c (mips_function_ok_for_sibcall): Handle | |
5642 | -minterlink-mips16 | |
5643 | ||
5644 | 2007-09-20 Joseph Myers <joseph@codesourcery.com> | |
5645 | ||
5646 | * doc/extend.texi (Attribute Syntax): Remove old speculative | |
5647 | future direction. | |
5648 | ||
5649 | 2007-09-20 Mark Shinwell <shinwell@codesourcery.com> | |
5650 | ||
5651 | * combine.c: Include cgraph.h. | |
5652 | (setup_incoming_promotions): Rework to allow more aggressive | |
5653 | elimination of sign extensions when all call sites of the | |
5654 | current function are known to lie within the current unit. | |
5655 | ||
5656 | 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk> | |
5657 | ||
5658 | * dse.c (find_shift_sequence): No-op rework of control flow. | |
5659 | ||
5660 | 2007-09-19 Richard Sandiford <rsandifo@nildram.co.uk> | |
5661 | ||
5662 | * config/mips/mips.c (build_mips16_call_stub): Tidy. Fix second | |
5663 | GPR for DCmode on 64-bit targets. Remove redundant fallback. | |
5664 | ||
5665 | 2007-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
5666 | ||
5667 | * cfgexpand.c (dump_stack_var_partition): Use the correct | |
5668 | index for the offset. | |
5669 | ||
5670 | 2007-09-19 Joseph Myers <joseph@codesourcery.com> | |
5671 | ||
5672 | * config/mips/sde.h: Switch to GPLv3. | |
5673 | ||
5674 | 2007-09-19 Eric Botcazou <ebotcazou@adacore.com> | |
5675 | ||
5676 | * tree-sra.c (decide_block_copy): Decide if there are groups. | |
5677 | ||
5678 | 2007-09-19 Roman Zippel <zippel@linux-m68k.org> | |
5679 | ||
5680 | * config/m68k/m68k.c (output_move_himode): Remove jump table | |
5681 | recognition. | |
5682 | config/m68k/m68k.md (lea): Likewise. | |
5683 | * config/m68k/m68k.c (print_operand_address): Use simple pc | |
5684 | relative addressing. | |
5685 | ||
5686 | 2007-09-19 Bernd Schmidt <bernd.schmidt@analog.com> | |
5687 | ||
5688 | * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument. | |
5689 | * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument | |
5690 | default definition. | |
5691 | (asm_insn_count): Pass template as second argument to it. | |
5692 | * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. | |
5693 | * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. | |
5694 | * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. | |
5695 | * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. | |
5696 | * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. | |
5697 | (sh_insn_length_adjustment): Pass template as second argument to it. | |
5698 | * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro. | |
5699 | ||
5700 | * config/bfin/bfin.md (define_asm_attributes): New. | |
5701 | ||
5702 | 2007-09-19 Jie Zhang <jie.zhang@analog.com> | |
5703 | ||
5704 | * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h | |
5705 | to tm_file. | |
5706 | * config/bfin/print-sysroot-suffix.sh: New. | |
5707 | * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove. | |
5708 | (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, | |
5709 | MULTILIB_EXCEPTIONS): Redefine with new multilibs. | |
5710 | * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove. | |
5711 | (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, | |
5712 | MULTILIB_EXCEPTIONS): Redefine with new multilibs. | |
5713 | * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove. | |
5714 | (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, | |
5715 | MULTILIB_EXCEPTIONS): Redefine with new multilibs. | |
5716 | (linux-sysroot-suffix.h): New target. | |
5717 | * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask. | |
5718 | (mspecld-anomaly): Likewise. | |
5719 | * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from | |
5720 | (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525, | |
5721 | BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542, | |
5722 | BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549. | |
5723 | (bfin_si_revision): Declare. | |
5724 | (bfin_workarounds): Declare. | |
5725 | (WA_SPECULATIVE_LOADS): Define. | |
5726 | (ENABLE_WA_SPECULATIVE_LOADS): Define. | |
5727 | (WA_SPECULATIVE_SYNCS): Define. | |
5728 | (ENABLE_WA_SPECULATIVE_SYNCS): Define. | |
5729 | * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o. | |
5730 | (LIB_SPEC): Add %s to the linker scripts. | |
5731 | Use proper linker script for bf522, bf525, bf527, | |
5732 | bf538, bf539, bf542, bf544, bf548, and bf549. | |
5733 | * config/bfin/bfin.c (bfin_si_revision): Define. | |
5734 | (bfin_workarounds): Define. | |
5735 | (struct bfin_cpu): New. | |
5736 | (bfin_cpus): New. | |
5737 | (bfin_handle_option): Handle silicon revision part of -mcpu option. | |
5738 | (override_options): Set bfin_workarounds. | |
5739 | (length_for_loop): Replace TARGET_CSYNC_ANOMALY with | |
5740 | ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with | |
5741 | ENABLE_WA_SPECULATIVE_LOADS. | |
5742 | (bfin_reorg): Likewise. | |
5743 | * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define | |
5744 | macros for bf522, bf525, bf527, bf538, bf539, | |
5745 | bf542, bf544, bf548, and bf549. | |
5746 | Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed. | |
5747 | Don't define __ID_SHARED_LIB__ when -msep-data. | |
5748 | (TARGET_DEFAULT): Define as 0. | |
5749 | (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option. | |
5750 | * doc/invoke.texi (Blackfin Options): Document silicon | |
5751 | revision part of -mcpu option and it now accepts bf522, bf525, | |
5752 | bf527, bf538, bf539, bf542, bf544, bf548, and bf549. | |
5753 | ||
5754 | 2007-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
5755 | ||
5756 | * alias.c (memory_modified_1): Deconstify. | |
5757 | (memory_modified_in_insn_p): Don't use const_note_stores. | |
5758 | * rtl.h (const_note_stores): Delete. | |
5759 | * rtlanal.c (const_note_stores): Likewise. | |
5760 | ||
5761 | 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
5762 | ||
5763 | * dse.c (find_shift_sequence): Temporarily revert to forbidding | |
5764 | word shifts. | |
5765 | ||
5766 | 2007-09-18 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
5767 | ||
5768 | PR target/33388 | |
5769 | PR target/33397 | |
5770 | * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO(). | |
5771 | (addsi_small_int): Likewise. | |
5772 | (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison. | |
5773 | (one_cmplsi2): Likewise. | |
5774 | (negsi2): Delete. | |
5775 | (enter_func): Expand insn using hard_frame_pointer_rtx and | |
5776 | stack_pointer_rtx. | |
5777 | (*enter_func): New. | |
5778 | * config/fr30/fr30.c (fr30_expand_prologue): Check for | |
5779 | hard_frame_pointer_rtx instead of using REGNO() check. | |
5780 | Properly sign extend GEN_INT() argument. | |
5781 | ||
5782 | 2007-09-18 Roman Zippel <zippel@linux-m68k.org> | |
5783 | ||
5784 | * config/m68k/m68k.c (override_options): Remove USE_GAS, | |
5785 | use %. syntax. | |
5786 | (output_dbcc_and_branch, output_scc_di): Replace all jbcc | |
5787 | alternatives with just jcc. | |
5788 | * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di, | |
5789 | bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev, | |
5790 | bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si, | |
5791 | dbge_hi, dbge_si): Likewise. | |
5792 | ||
5793 | 2007-09-18 Roman Zippel <zippel@linux-m68k.org> | |
5794 | ||
5795 | * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered, | |
5796 | bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev, | |
5797 | bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev, | |
5798 | bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev, | |
5799 | bunlt_rev, bltgt_rev): Replace all fbcc with fjcc. | |
5800 | ||
5801 | 2007-09-18 Maxim Kuvyrkov <maxim@codesourcery.com> | |
5802 | ||
5803 | * config/m68k/m68k-devices.def (51qe): New device. | |
5804 | * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it | |
5805 | to all uses of FL_FOR_isa_c for compatibility. | |
5806 | (all_microarchs): Add cfv1 microarchitecture. | |
5807 | (m68k_handle_option): Handle m51qe option. | |
5808 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE. | |
5809 | (TUNE_CFV1): New macro. | |
5810 | (enum uarch_type): Add ucfv1. | |
5811 | * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture. | |
5812 | ||
5813 | 2007-09-18 Richard Guenther <rguenther@suse.de> | |
5814 | ||
5815 | PR tree-optimization/31863 | |
5816 | * tree-ssa-structalias.c (create_variable_info_for): Always | |
5817 | free the fieldstack. | |
5818 | ||
5819 | 2007-09-18 Dorit Nuzman <dorit@il.ibm.com> | |
5820 | ||
5821 | * opts.c (decode_options): Enable vectorization under -O3. | |
5822 | ||
5823 | 2007-09-18 Richard Guenther <rguenther@suse.de> | |
5824 | ||
5825 | PR tree-optimization/33340 | |
5826 | * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to | |
5827 | SSA_NAMEs that occur in abnormal PHI nodes. | |
5828 | ||
5829 | 2007-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
5830 | ||
5831 | * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p): | |
5832 | Don't use const_get_call_expr_in. | |
5833 | * tree-gimple.c (const_get_call_expr_in): Delete. | |
5834 | * tree-gimple.h (const_get_call_expr_in): Likewise. | |
5835 | ||
5836 | 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
5837 | ||
5838 | * df-scan.c (df_notes_rescan): Do nothing if the instruction does | |
5839 | not yet have a basic block. | |
5840 | * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN. | |
5841 | ||
5842 | 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> | |
5843 | ||
5844 | * config/mips/mips.c (mips_file_start): Add ".previous" directives | |
5845 | to both ".section"s. | |
5846 | ||
5847 | 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk> | |
5848 | ||
5849 | * config/mips/mips.c (mips_output_mi_thunk): Use | |
5850 | mips_function_ok_for_sibcall and const_call_insn_operand | |
5851 | to determine if a direct sibcall is allowed. Use | |
5852 | mips_classify_symbol to determine a global pointer is needed. | |
5853 | ||
5854 | 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk> | |
5855 | ||
5856 | * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand. | |
5857 | ||
5858 | 2007-09-17 Chao-ying Fu <fu@mips.com> | |
5859 | Nigel Stephens <nigel@mips.com> | |
5860 | ||
5861 | * config/fixed-bit.h: New file. | |
5862 | * config/fixed-bit.c: New file. | |
5863 | * doc/libgcc.texi (Fixed-point fractional library routines): New node. | |
5864 | ||
5865 | 2007-09-18 Jakub Jelinek <jakub@redhat.com> | |
5866 | ||
5867 | * c-format.h (format_kind_info): Add alloc_char field. | |
5868 | * c-format.c (scanf_flag_specs): Add 'm'. | |
5869 | (scanf_flag_pairs): Add 'a', 'm' pair. | |
5870 | (scan_char_table): Allow 'm' modifier for c, s, [, C and S. | |
5871 | (format_types_orig): Add alloc_char fields. | |
5872 | (check_format_info_main): Rename aflag to alloc_flag. | |
5873 | Handle fki->alloc_char. modifier after width and before length | |
5874 | modifiers. Move FMT_FLAG_SCANF_A_KLUDGE handling before | |
5875 | length modifiers as well. | |
5876 | * config/sol2-c.c (solaris_format_types): Add alloc_char field. | |
5877 | ||
5878 | PR middle-end/33423 | |
5879 | * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs | |
5880 | returned by build_call_expr. | |
5881 | ||
5882 | 2007-09-17 Eric Botcazou <ebotcazou@adacore.com> | |
5883 | ||
5884 | * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return | |
5885 | NULL for variable-sized records too. | |
5886 | (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too. | |
5887 | ||
5888 | 2007-09-17 Tom Tromey <tromey@redhat.com> | |
5889 | ||
5890 | * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC. | |
5891 | (c_builtin_function): Likewise. | |
5892 | (grokdeclarator): Likewise. | |
5893 | ||
5894 | 2007-09-17 Zdenek Dvorak <ook@ucw.cz> | |
5895 | ||
5896 | PR rtl-optimization/26449 | |
5897 | * loop-invariant.c (move_invariant_reg): Do not use force_operand. | |
5898 | (seq_insns_valid_p): Removed. | |
5899 | ||
5900 | 2007-09-17 Eric Botcazou <ebotcazou@adacore.com> | |
5901 | ||
5902 | * tree-nomudflap.c (gate_mudflap): New static function. | |
5903 | (pass_mudflap_1): Use it as gate function. | |
5904 | (pass_mudflap_2): Likewise. | |
5905 | ||
5906 | 2007-09-17 Jan Hubicka <jh@suse.cz> | |
5907 | ||
5908 | PR middle-end/33348 | |
5909 | PR target/33406 | |
5910 | * loop-invariant.c (move_invariant_reg): Unshare sequence. | |
5911 | ||
5912 | 2007-09-17 Victor Kaplansky <victork@il.ibm.com> | |
5913 | ||
5914 | PR tree-optimization/33319 | |
5915 | * tree-vect-analyze.c (vect_same_range_drs): New. | |
5916 | (vect_vfa_range_equal): New. | |
5917 | (vect_is_duplicate_ddr): Removed. | |
5918 | (vect_mark_for_runtime_alias_test): Do not perform marking when | |
5919 | optimizing for size or max_param for alias checking is zero. | |
5920 | Move the function before vect_analyze_data_ref_dependence. | |
5921 | (vect_analyze_data_ref_dependence): Add call to | |
5922 | vect_mark_for_runtime_alias_test in two cases when dependence | |
5923 | is not clear. | |
5924 | (vect_analyze_data_ref_dependences): Do not call to | |
5925 | vect_mark_for_runtime_alias_test. | |
5926 | (vect_prune_runtime_alias_test_list): New. | |
5927 | (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list. | |
5928 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): | |
5929 | Update vec_outside_cost. | |
5930 | (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT. | |
5931 | (vect_create_cond_for_alias_checks): Build the base address of data | |
5932 | reference from DR_GROUP_FIRST_DR. | |
5933 | (vect_loop_versioning): New. | |
5934 | (vect_transform_loop): Add a call to vect_loop_versioning. | |
5935 | Remove factored out code. | |
5936 | ||
5937 | 2007-09-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
5938 | ||
5939 | PR middle-end/33273 | |
5940 | * expr.c (store_expr): Call adjust_address to change mode of dest_mem | |
5941 | to BLKmode. | |
5942 | ||
5943 | 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> | |
5944 | ||
5945 | * dse.c (find_shift_sequence): Allow word as well as subword shifts. | |
5946 | Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set. | |
5947 | Fix the call to insn_rtx_cost. Skip access sizes that require a | |
5948 | real truncation of the store register. Use convert_move instead | |
5949 | of gen_lowpart when narrowing the result. | |
5950 | (replace_read): Use convert_move instead of gen_lowpart when | |
5951 | narrowing the store rhs. | |
5952 | ||
5953 | 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> | |
5954 | ||
5955 | * config/mips/mips.md (SHORT): Fix long line. | |
5956 | (SUBDI): New mode iterator. Extend the shift-and-truncate insns | |
5957 | to QImode and HImode. | |
5958 | ||
5959 | 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> | |
5960 | ||
5961 | * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define. | |
5962 | ||
5963 | 2007-09-15 Zdenek Dvorak <ook@ucw.cz> | |
5964 | ||
5965 | * tree-parloops.c: New file. | |
5966 | * tree-ssa-operands.h (free_stmt_operands): Declare. | |
5967 | * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic | |
5968 | block. | |
5969 | * tree-pass.h (pass_parallelize_loops): Declare. | |
5970 | * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for | |
5971 | virtual operands. | |
5972 | (build_omp_regions_1): Allow analysing just a single OMP region and | |
5973 | its subregions. | |
5974 | ( build_omp_regions_root, omp_expand_local): New functions. | |
5975 | (build_omp_regions): Add argument to build_omp_regions_1 call. | |
5976 | * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when | |
5977 | autoparallelization is run. | |
5978 | * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New. | |
5979 | * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops, | |
5980 | pass_parallelize_loops): New. | |
5981 | * common.opt (ftree-parallelize-loops): New. | |
5982 | * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail, | |
5983 | parallelize_loops): Declare. | |
5984 | (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed. | |
5985 | * Makefile.in (tree-parloops.o): Added. | |
5986 | * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail): | |
5987 | New functions. | |
5988 | (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge. | |
5989 | (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for | |
5990 | one extra edge as well. | |
5991 | (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy. | |
5992 | Use VEC_free to free doms vector. | |
5993 | (move_block_to_fn): Update loop info. Remove phi nodes for virtual | |
5994 | operands. Recompute operand caches in the new function. | |
5995 | (move_sese_region_to_fn): Update loop info. | |
5996 | * passes.c (init_optimization_passes): Add pass_parallelize_loops. | |
5997 | * tree-ssa-operands.c (free_stmt_operands): New function. | |
5998 | ||
5999 | * doc/passes.texi: Document autoparallelization. | |
6000 | * doc/invoke.texi (-ftree-parallelize-loops): New option. | |
6001 | ||
6002 | 2007-09-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
6003 | ||
6004 | PR target/33062 | |
6005 | * pa.c (function_value): Use GET_MODE_BITSIZE instead of | |
6006 | TYPE_PRECISION. | |
6007 | ||
6008 | 2007-09-15 Dorit Nuzman <dorit@il.ibm.com> | |
6009 | ||
6010 | * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if | |
6011 | the VEC is not NULL. | |
6012 | (vectorizable_type_demotion, vectorizable_type_promotion): Check that | |
6013 | get_vectype_for_scalar_type succeeded. | |
6014 | (vectorizable_conversion): Likewise. | |
6015 | ||
6016 | 2007-09-14 Jan Hubicka <jh@suse.cz> | |
6017 | ||
6018 | * config/i386/i386.md (*floatdi<mode>2_i387): Guard against | |
6019 | TARGET_64BIT. | |
6020 | ||
6021 | 2007-09-14 Uros Bizjak <ubizjak@gmail.com> | |
6022 | ||
6023 | PR target/33438 | |
6024 | * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary | |
6025 | register when operands[2] equals operands[1]. | |
6026 | (remainderxf3): Ditto. | |
6027 | ||
6028 | 2007-09-14 Sandra Loosemore <sandra@codesourcery.com> | |
6029 | Nigel Stephens <nigel@mips.com> | |
6030 | ||
6031 | * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document. | |
6032 | * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. | |
6033 | (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration. | |
6034 | (_Unwind_ForcedUnwind): Likewise. | |
6035 | (_Unwind_Resume): Likewise. | |
6036 | (_Unwind_Resume_or_Rethrow): Likewise. | |
6037 | (_Unwind_Backtrace): Likewise. | |
6038 | (_Unwind_SjLj_RaiseException): Likewise. | |
6039 | (_Unwind_SjLj_ForcedUnwind): Likewise. | |
6040 | (_Unwind_SjLj_Resume): Likewise. | |
6041 | (_Unwind_SjLj_Resume_or_Rethrow): Likewise. | |
6042 | * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE | |
6043 | to definition. | |
6044 | (_Unwind_ForcedUnwind): Likewise. | |
6045 | (_Unwind_Resume): Likewise. | |
6046 | (_Unwind_Resume_or_Rethrow): Likewise. | |
6047 | (_Unwind_Backtrace): Likewise. | |
6048 | * unwind-compat.c (_Unwind_Backtrace): Likewise. | |
6049 | (_Unwind_ForcedUnwind): Likewise. | |
6050 | (_Unwind_RaiseException): Likewise. | |
6051 | (_Unwind_Resume): Likewise. | |
6052 | (_Unwind_Resume_or_Rethrow): Likewise. | |
6053 | ||
6054 | * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force | |
6055 | nomips16 mode when IN_LIBGCC2 with hard float. | |
6056 | ||
6057 | 2007-09-14 Richard Sandiford <rsandifo@nildram.co.uk> | |
6058 | ||
6059 | * config/mips/sdemtk.opt: Update to GPLv3. | |
6060 | * config/mips/sdemtk.h: Likewise. | |
6061 | ||
6062 | 2007-09-14 Nigel Stephens <nigel@mips.com> | |
6063 | ||
6064 | * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set | |
6065 | MIPS_ISA_DEFAULT appropriately. Don't make soft-float the default | |
6066 | for mipsisa32-*-linux*. | |
6067 | ||
6068 | 2007-09-14 Nigel Stephens <nigel@mips.com> | |
6069 | David Ung <davidu@mips.com> | |
6070 | Thiemo Seufer <ths@mips.com> | |
6071 | Richard Sandiford <richard@codesourcery.com> | |
6072 | ||
6073 | * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries. | |
6074 | * configure.ac: Add a mipssde threading type. | |
6075 | * configure: Regenerate. | |
6076 | * config/mips/sdemtk.h: New file. | |
6077 | * config/mips/t-sdemtk: Likewise. | |
6078 | * config/mips/sdemtk.opt: Likewise. | |
6079 | * gthr-mipssde.h: Likewise. | |
6080 | * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h. | |
6081 | * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro. | |
6082 | (MIPS_ICACHE_SYNC): New macro, split from ... | |
6083 | * config/mips/mips.md (clear_cache): ...here. | |
6084 | * config/mips/mips.c (mips_save_reg_p): Check | |
6085 | MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions. | |
6086 | (build_mips16_function_stub): Use targetm.strip_name_encoding. | |
6087 | (build_mips16_call_stub): Likewise. | |
6088 | ||
6089 | 2007-09-14 Richard Sandiford <richard@codesourcery.com> | |
6090 | ||
6091 | * Makefile.in (stmp-int-hdrs): Depend on fixinc_list. | |
6092 | ||
6093 | 2007-09-14 Jakub Jelinek <jakub@redhat.com> | |
6094 | ||
6095 | PR target/32337 | |
6096 | * config/ia64/ia64.c (find_gr_spill): Don't decrement | |
6097 | current_frame_info.n_local_regs. Don't return emitted local regs. | |
6098 | (ia64_compute_frame_size): Improve unwind hack to put | |
6099 | RP, PFS, FP in that order by allowing some of the registers | |
6100 | been already emitted, as long as they are emitted to the | |
6101 | desired register. | |
6102 | ||
6103 | 2007-09-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
6104 | ||
6105 | * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx, | |
6106 | vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats, | |
6107 | vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics. | |
6108 | ||
6109 | 2007-09-13 Eric Christopher <echristo@apple.com> | |
6110 | Kenneth Zadeck <zadeck@naturalbridge.com> | |
6111 | ||
6112 | * dse.c (find_shift_sequence): New function. | |
6113 | (replace_read): Add case to remove read if it requires shift. | |
6114 | * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment. | |
6115 | ||
6116 | 2007-09-13 Tom Tromey <tromey@redhat.com> | |
6117 | ||
6118 | * c-common.c (fname_as_string): Update. | |
6119 | * c-parser.c (c_parser) <lex_untranslated_string>: New field. | |
6120 | (c_lex_one_token): Update. Add 'parser' argument. | |
6121 | (c_parser_simple_asm_expr): Update. | |
6122 | (c_parser_attributes): Update. | |
6123 | (c_parser_asm_statement): Update. | |
6124 | (c_parser_asm_operands): Update. | |
6125 | (c_parser_peek_token): Update. | |
6126 | (c_parser_peek_2nd_token): Update. | |
6127 | * c-lex.c (c_lex_string_translate): Remove. | |
6128 | (c_lex_return_raw_strings): Likewise. | |
6129 | (c_lex_with_flags): Added 'lex_flags' argument. | |
6130 | (lex_string): Added 'translate' argument. | |
6131 | * c-pragma.h (c_lex_with_flags): Update. | |
6132 | (c_lex_string_translate, c_lex_return_raw_strings): Remove. | |
6133 | (C_LEX_STRING_NO_TRANSLATE): New define. | |
6134 | (C_LEX_RAW_STRINGS): Likewise. | |
6135 | ||
6136 | 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com> | |
6137 | ||
6138 | From Jie Zhang: | |
6139 | * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES, | |
6140 | BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40, | |
6141 | BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU. | |
6142 | (bfin_init_builtins): Initialize __builtin_bfin_ones, | |
6143 | __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16, | |
6144 | __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32, | |
6145 | __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub, | |
6146 | __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40, | |
6147 | __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16. | |
6148 | (bdesc_1arg): Add __builtin_bfin_ones. | |
6149 | (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40, | |
6150 | __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40, | |
6151 | and __builtin_bfin_csqu_fr16. | |
6152 | * config/bfin/bfin.md (UNSPEC_ONES): New constant. | |
6153 | (ones): New define_insn. | |
6154 | (ssaddhi3_parts): New define_insn. | |
6155 | (sssubhi3_parts): New define_insn. | |
6156 | (flag_mulhi_parts): New define_insn. | |
6157 | ||
6158 | 2007-09-13 Seongbae Park <seongbae.park@gmail.com> | |
6159 | ||
6160 | * common.opt (femit-class-debug-always): Turn off by default. | |
6161 | ||
6162 | 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com> | |
6163 | ||
6164 | * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns. | |
6165 | * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them. | |
6166 | ||
6167 | 2007-09-13 James E. Wilson <wilson@specifix.com> | |
6168 | ||
6169 | PR tree-optimization/33389 | |
6170 | * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true, | |
6171 | then set build_loads before returning. | |
6172 | ||
6173 | 2007-09-13 Sandra Loosemore <sandra@codesourcery.com> | |
6174 | David Ung <davidu@mips.com> | |
6175 | ||
6176 | * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with | |
6177 | {d}addiu and a negative immediate such that it works with MIPS16 | |
6178 | instructions. | |
6179 | ||
6180 | 2007-09-13 H.J. Lu <hongjiu.lu@intel.com> | |
6181 | ||
6182 | PR bootstrap/33418 | |
6183 | * configure.ac (ld_vers): Support Linux linker. | |
6184 | * configure: Regenerated. | |
6185 | ||
6186 | 2007-09-13 Richard Sandiford <richard@codesourcery.com> | |
6187 | Sandra Loosemore <sandra@codesourcery.com> | |
6188 | ||
6189 | * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete. | |
6190 | (SYMBOL_REF_MIPS16_FUNC_P): Delete. | |
6191 | * config/mips/mips.c (mips_attribute_table): Turn mips16 and | |
6192 | nomips16 into decl attributes. | |
6193 | (TARGET_INSERT_ATTRIBUTES): Override. | |
6194 | (TARGET_MERGE_DECL_ATTRIBUTES): Likewise. | |
6195 | (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true. | |
6196 | (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of... | |
6197 | (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions. | |
6198 | (mips_comp_type_attributes): Remove mips16 and nomips16 handling. | |
6199 | (mips_use_mips16_mode_p): Reimplement as a function that takes | |
6200 | a decl and considers only decl attributes. If the decl is nested | |
6201 | function, use its parent attributes. | |
6202 | (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p | |
6203 | instead of SYMBOL_REF_MIPS16_FUNC_P. | |
6204 | (mips_set_mips16_mode): Move call to sorry here from old | |
6205 | mips_use_mips16_mode_p. | |
6206 | (mflip_mips16_entry): New structure. | |
6207 | (mflip_mips16_htab): New variable. | |
6208 | (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions. | |
6209 | (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise. | |
6210 | (mips_merge_decl_attributes): New function. | |
6211 | (mips_set_current_function): Reinstate call to mips_set_mips16_mode. | |
6212 | Use mips_use_mips16_mode_p. | |
6213 | (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of | |
6214 | SYMBOL_REF_MIPS16_FUNC_P. | |
6215 | (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC. | |
6216 | ||
6217 | 2007-09-13 Richard Sandiford <richard@codesourcery.com> | |
6218 | ||
6219 | * c-parser.c (c_parser_struct_declaration): Check for a null return. | |
6220 | ||
6221 | 2007-09-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
6222 | ||
6223 | PR driver/33309 | |
6224 | * gcc.c (xputenv): Make argument const, and use CONST_CAST. | |
6225 | ||
6226 | 2007-09-12 Michael Meissner <michael.meissner@amd.com> | |
6227 | Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
6228 | Tony Linthicum <tony.linthicum@amd.com> | |
6229 | ||
6230 | * tree.h (function_args_iterator): New type to iterate over | |
6231 | function arguments. | |
6232 | (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over | |
6233 | function arguments providing a pointer to the argument. | |
6234 | (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over | |
6235 | function arguments providing the argument. | |
6236 | (function_args_iter_init): Inline function to initialize | |
6237 | function_args_iterator. | |
6238 | (function_args_iter_cond_ptr): Inline function to return the next | |
6239 | pointer to hold the argument. | |
6240 | (function_args_iter_cond): Inline function to return the next | |
6241 | argument. | |
6242 | (function_args_iter_cond_next): Advance the function args iterator. | |
6243 | (stdarg_p): New function, return true if variable argument function. | |
6244 | (prototype_p): New function, return true if function is prototyped. | |
6245 | (function_args_count): New function, count the number of arguments | |
6246 | of a function. | |
6247 | ||
6248 | * tree.c (stdarg_p): New function, return true if variable | |
6249 | argument function. | |
6250 | (prototype_p): New function, return true if function is prototyped. | |
6251 | ||
6252 | * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. | |
6253 | (TARGET_ROUND): New macro for the round/ptest instructions which | |
6254 | are shared between SSE4.1 and SSE5. | |
6255 | (OPTION_MASK_ISA_ROUND): Ditto. | |
6256 | (OPTION_ISA_ROUND): Ditto. | |
6257 | (TARGET_FUSED_MADD): New macro for -mfused-madd swtich. | |
6258 | (TARGET_CPU_CPP_BUILTINS): Add SSE5 support. | |
6259 | ||
6260 | * config/i386/i386.opt (-msse5): New switch for SSE5 support. | |
6261 | (-mfused-madd): New switch to give users control over whether the | |
6262 | compiler optimizes to use the multiply/add SSE5 instructions. | |
6263 | ||
6264 | * config/i386/i386.c (m_AMD_MULTIPLE): Rename from | |
6265 | m_ATHLON_K8_AMDFAM10, and change all uses. | |
6266 | (enum pta_flags): Add PTA_SSE5. | |
6267 | (ix86_handle_option): Turn off 3dnow if -msse5. | |
6268 | (override_options): Add SSE5 support. | |
6269 | (print_operand): %Y prints comparison codes for SSE5 com/pcom | |
6270 | instructions. | |
6271 | (ix86_expand_sse_movcc): Add SSE5 support. | |
6272 | (ix86_expand_sse5_unpack): New function to use pperm to unpack a | |
6273 | vector type to the next largest size. | |
6274 | (ix86_expand_sse5_pack): New function to use pperm to pack a | |
6275 | vector type to the next smallest size. | |
6276 | (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic. | |
6277 | (IX86_BUILTIN_FMADDSD): Ditto. | |
6278 | (IX86_BUILTIN_FMADDPS): Ditto. | |
6279 | (IX86_BUILTIN_FMADDPD): Ditto. | |
6280 | (IX86_BUILTIN_FMSUBSS): Ditto. | |
6281 | (IX86_BUILTIN_FMSUBSD): Ditto. | |
6282 | (IX86_BUILTIN_FMSUBPS): Ditto. | |
6283 | (IX86_BUILTIN_FMSUBPD): Ditto. | |
6284 | (IX86_BUILTIN_FNMADDSS): Ditto. | |
6285 | (IX86_BUILTIN_FNMADDSD): Ditto. | |
6286 | (IX86_BUILTIN_FNMADDPS): Ditto. | |
6287 | (IX86_BUILTIN_FNMADDPD): Ditto. | |
6288 | (IX86_BUILTIN_FNMSUBSS): Ditto. | |
6289 | (IX86_BUILTIN_FNMSUBSD): Ditto. | |
6290 | (IX86_BUILTIN_FNMSUBPS): Ditto. | |
6291 | (IX86_BUILTIN_FNMSUBPD): Ditto. | |
6292 | (IX86_BUILTIN_PCMOV_V2DI): Ditto. | |
6293 | (IX86_BUILTIN_PCMOV_V4SI): Ditto. | |
6294 | (IX86_BUILTIN_PCMOV_V8HI): Ditto. | |
6295 | (IX86_BUILTIN_PCMOV_V16QI): Ditto. | |
6296 | (IX86_BUILTIN_PCMOV_V4SF): Ditto. | |
6297 | (IX86_BUILTIN_PCMOV_V2DF): Ditto. | |
6298 | (IX86_BUILTIN_PPERM): Ditto. | |
6299 | (IX86_BUILTIN_PERMPS): Ditto. | |
6300 | (IX86_BUILTIN_PERMPD): Ditto. | |
6301 | (IX86_BUILTIN_PMACSSWW): Ditto. | |
6302 | (IX86_BUILTIN_PMACSWW): Ditto. | |
6303 | (IX86_BUILTIN_PMACSSWD): Ditto. | |
6304 | (IX86_BUILTIN_PMACSWD): Ditto. | |
6305 | (IX86_BUILTIN_PMACSSDD): Ditto. | |
6306 | (IX86_BUILTIN_PMACSDD): Ditto. | |
6307 | (IX86_BUILTIN_PMACSSDQL): Ditto. | |
6308 | (IX86_BUILTIN_PMACSSDQH): Ditto. | |
6309 | (IX86_BUILTIN_PMACSDQL): Ditto. | |
6310 | (IX86_BUILTIN_PMACSDQH): Ditto. | |
6311 | (IX86_BUILTIN_PMADCSSWD): Ditto. | |
6312 | (IX86_BUILTIN_PMADCSWD): Ditto. | |
6313 | (IX86_BUILTIN_PHADDBW): Ditto. | |
6314 | (IX86_BUILTIN_PHADDBD): Ditto. | |
6315 | (IX86_BUILTIN_PHADDBQ): Ditto. | |
6316 | (IX86_BUILTIN_PHADDWD): Ditto. | |
6317 | (IX86_BUILTIN_PHADDWQ): Ditto. | |
6318 | (IX86_BUILTIN_PHADDDQ): Ditto. | |
6319 | (IX86_BUILTIN_PHADDUBW): Ditto. | |
6320 | (IX86_BUILTIN_PHADDUBD): Ditto. | |
6321 | (IX86_BUILTIN_PHADDUBQ): Ditto. | |
6322 | (IX86_BUILTIN_PHADDUWD): Ditto. | |
6323 | (IX86_BUILTIN_PHADDUWQ): Ditto. | |
6324 | (IX86_BUILTIN_PHADDUDQ): Ditto. | |
6325 | (IX86_BUILTIN_PHSUBBW): Ditto. | |
6326 | (IX86_BUILTIN_PHSUBWD): Ditto. | |
6327 | (IX86_BUILTIN_PHSUBDQ): Ditto. | |
6328 | (IX86_BUILTIN_PROTB): Ditto. | |
6329 | (IX86_BUILTIN_PROTW): Ditto. | |
6330 | (IX86_BUILTIN_PROTD): Ditto. | |
6331 | (IX86_BUILTIN_PROTQ): Ditto. | |
6332 | (IX86_BUILTIN_PROTB_IMM): Ditto. | |
6333 | (IX86_BUILTIN_PROTW_IMM): Ditto. | |
6334 | (IX86_BUILTIN_PROTD_IMM): Ditto. | |
6335 | (IX86_BUILTIN_PROTQ_IMM): Ditto. | |
6336 | (IX86_BUILTIN_PSHLB): Ditto. | |
6337 | (IX86_BUILTIN_PSHLW): Ditto. | |
6338 | (IX86_BUILTIN_PSHLD): Ditto. | |
6339 | (IX86_BUILTIN_PSHLQ): Ditto. | |
6340 | (IX86_BUILTIN_PSHAB): Ditto. | |
6341 | (IX86_BUILTIN_PSHAW): Ditto. | |
6342 | (IX86_BUILTIN_PSHAD): Ditto. | |
6343 | (IX86_BUILTIN_PSHAQ): Ditto. | |
6344 | (IX86_BUILTIN_FRCZSS): Ditto. | |
6345 | (IX86_BUILTIN_FRCZSD): Ditto. | |
6346 | (IX86_BUILTIN_FRCZPS): Ditto. | |
6347 | (IX86_BUILTIN_FRCZPD): Ditto. | |
6348 | (IX86_BUILTIN_CVTPH2PS): Ditto. | |
6349 | (IX86_BUILTIN_CVTPS2PH): Ditto. | |
6350 | (IX86_BUILTIN_COMEQSS): Ditto. | |
6351 | (IX86_BUILTIN_COMNESS): Ditto. | |
6352 | (IX86_BUILTIN_COMLTSS): Ditto. | |
6353 | (IX86_BUILTIN_COMLESS): Ditto. | |
6354 | (IX86_BUILTIN_COMGTSS): Ditto. | |
6355 | (IX86_BUILTIN_COMGESS): Ditto. | |
6356 | (IX86_BUILTIN_COMUEQSS): Ditto. | |
6357 | (IX86_BUILTIN_COMUNESS): Ditto. | |
6358 | (IX86_BUILTIN_COMULTSS): Ditto. | |
6359 | (IX86_BUILTIN_COMULESS): Ditto. | |
6360 | (IX86_BUILTIN_COMUGTSS): Ditto. | |
6361 | (IX86_BUILTIN_COMUGESS): Ditto. | |
6362 | (IX86_BUILTIN_COMORDSS): Ditto. | |
6363 | (IX86_BUILTIN_COMUNORDSS): Ditto. | |
6364 | (IX86_BUILTIN_COMFALSESS): Ditto. | |
6365 | (IX86_BUILTIN_COMTRUESS): Ditto. | |
6366 | (IX86_BUILTIN_COMEQSD): Ditto. | |
6367 | (IX86_BUILTIN_COMNESD): Ditto. | |
6368 | (IX86_BUILTIN_COMLTSD): Ditto. | |
6369 | (IX86_BUILTIN_COMLESD): Ditto. | |
6370 | (IX86_BUILTIN_COMGTSD): Ditto. | |
6371 | (IX86_BUILTIN_COMGESD): Ditto. | |
6372 | (IX86_BUILTIN_COMUEQSD): Ditto. | |
6373 | (IX86_BUILTIN_COMUNESD): Ditto. | |
6374 | (IX86_BUILTIN_COMULTSD): Ditto. | |
6375 | (IX86_BUILTIN_COMULESD): Ditto. | |
6376 | (IX86_BUILTIN_COMUGTSD): Ditto. | |
6377 | (IX86_BUILTIN_COMUGESD): Ditto. | |
6378 | (IX86_BUILTIN_COMORDSD): Ditto. | |
6379 | (IX86_BUILTIN_COMUNORDSD): Ditto. | |
6380 | (IX86_BUILTIN_COMFALSESD): Ditto. | |
6381 | (IX86_BUILTIN_COMTRUESD): Ditto. | |
6382 | (IX86_BUILTIN_COMEQPS): Ditto. | |
6383 | (IX86_BUILTIN_COMNEPS): Ditto. | |
6384 | (IX86_BUILTIN_COMLTPS): Ditto. | |
6385 | (IX86_BUILTIN_COMLEPS): Ditto. | |
6386 | (IX86_BUILTIN_COMGTPS): Ditto. | |
6387 | (IX86_BUILTIN_COMGEPS): Ditto. | |
6388 | (IX86_BUILTIN_COMUEQPS): Ditto. | |
6389 | (IX86_BUILTIN_COMUNEPS): Ditto. | |
6390 | (IX86_BUILTIN_COMULTPS): Ditto. | |
6391 | (IX86_BUILTIN_COMULEPS): Ditto. | |
6392 | (IX86_BUILTIN_COMUGTPS): Ditto. | |
6393 | (IX86_BUILTIN_COMUGEPS): Ditto. | |
6394 | (IX86_BUILTIN_COMORDPS): Ditto. | |
6395 | (IX86_BUILTIN_COMUNORDPS): Ditto. | |
6396 | (IX86_BUILTIN_COMFALSEPS): Ditto. | |
6397 | (IX86_BUILTIN_COMTRUEPS): Ditto. | |
6398 | (IX86_BUILTIN_COMEQPD): Ditto. | |
6399 | (IX86_BUILTIN_COMNEPD): Ditto. | |
6400 | (IX86_BUILTIN_COMLTPD): Ditto. | |
6401 | (IX86_BUILTIN_COMLEPD): Ditto. | |
6402 | (IX86_BUILTIN_COMGTPD): Ditto. | |
6403 | (IX86_BUILTIN_COMGEPD): Ditto. | |
6404 | (IX86_BUILTIN_COMUEQPD): Ditto. | |
6405 | (IX86_BUILTIN_COMUNEPD): Ditto. | |
6406 | (IX86_BUILTIN_COMULTPD): Ditto. | |
6407 | (IX86_BUILTIN_COMULEPD): Ditto. | |
6408 | (IX86_BUILTIN_COMUGTPD): Ditto. | |
6409 | (IX86_BUILTIN_COMUGEPD): Ditto. | |
6410 | (IX86_BUILTIN_COMORDPD): Ditto. | |
6411 | (IX86_BUILTIN_COMUNORDPD): Ditto. | |
6412 | (IX86_BUILTIN_COMFALSEPD): Ditto. | |
6413 | (IX86_BUILTIN_COMTRUEPD): Ditto. | |
6414 | (IX86_BUILTIN_PCOMEQUB): Ditto. | |
6415 | (IX86_BUILTIN_PCOMNEUB): Ditto. | |
6416 | (IX86_BUILTIN_PCOMLTUB): Ditto. | |
6417 | (IX86_BUILTIN_PCOMLEUB): Ditto. | |
6418 | (IX86_BUILTIN_PCOMGTUB): Ditto. | |
6419 | (IX86_BUILTIN_PCOMGEUB): Ditto. | |
6420 | (IX86_BUILTIN_PCOMFALSEUB): Ditto. | |
6421 | (IX86_BUILTIN_PCOMTRUEUB): Ditto. | |
6422 | (IX86_BUILTIN_PCOMEQUW): Ditto. | |
6423 | (IX86_BUILTIN_PCOMNEUW): Ditto. | |
6424 | (IX86_BUILTIN_PCOMLTUW): Ditto. | |
6425 | (IX86_BUILTIN_PCOMLEUW): Ditto. | |
6426 | (IX86_BUILTIN_PCOMGTUW): Ditto. | |
6427 | (IX86_BUILTIN_PCOMGEUW): Ditto. | |
6428 | (IX86_BUILTIN_PCOMFALSEUW): Ditto. | |
6429 | (IX86_BUILTIN_PCOMTRUEUW): Ditto. | |
6430 | (IX86_BUILTIN_PCOMEQUD): Ditto. | |
6431 | (IX86_BUILTIN_PCOMNEUD): Ditto. | |
6432 | (IX86_BUILTIN_PCOMLTUD): Ditto. | |
6433 | (IX86_BUILTIN_PCOMLEUD): Ditto. | |
6434 | (IX86_BUILTIN_PCOMGTUD): Ditto. | |
6435 | (IX86_BUILTIN_PCOMGEUD): Ditto. | |
6436 | (IX86_BUILTIN_PCOMFALSEUD): Ditto. | |
6437 | (IX86_BUILTIN_PCOMTRUEUD): Ditto. | |
6438 | (IX86_BUILTIN_PCOMEQUQ): Ditto. | |
6439 | (IX86_BUILTIN_PCOMNEUQ): Ditto. | |
6440 | (IX86_BUILTIN_PCOMLTUQ): Ditto. | |
6441 | (IX86_BUILTIN_PCOMLEUQ): Ditto. | |
6442 | (IX86_BUILTIN_PCOMGTUQ): Ditto. | |
6443 | (IX86_BUILTIN_PCOMGEUQ): Ditto. | |
6444 | (IX86_BUILTIN_PCOMFALSEUQ): Ditto. | |
6445 | (IX86_BUILTIN_PCOMTRUEUQ): Ditto. | |
6446 | (IX86_BUILTIN_PCOMEQB): Ditto. | |
6447 | (IX86_BUILTIN_PCOMNEB): Ditto. | |
6448 | (IX86_BUILTIN_PCOMLTB): Ditto. | |
6449 | (IX86_BUILTIN_PCOMLEB): Ditto. | |
6450 | (IX86_BUILTIN_PCOMGTB): Ditto. | |
6451 | (IX86_BUILTIN_PCOMGEB): Ditto. | |
6452 | (IX86_BUILTIN_PCOMFALSEB): Ditto. | |
6453 | (IX86_BUILTIN_PCOMTRUEB): Ditto. | |
6454 | (IX86_BUILTIN_PCOMEQW): Ditto. | |
6455 | (IX86_BUILTIN_PCOMNEW): Ditto. | |
6456 | (IX86_BUILTIN_PCOMLTW): Ditto. | |
6457 | (IX86_BUILTIN_PCOMLEW): Ditto. | |
6458 | (IX86_BUILTIN_PCOMGTW): Ditto. | |
6459 | (IX86_BUILTIN_PCOMGEW): Ditto. | |
6460 | (IX86_BUILTIN_PCOMFALSEW): Ditto. | |
6461 | (IX86_BUILTIN_PCOMTRUEW): Ditto. | |
6462 | (IX86_BUILTIN_PCOMEQD): Ditto. | |
6463 | (IX86_BUILTIN_PCOMNED): Ditto. | |
6464 | (IX86_BUILTIN_PCOMLTD): Ditto. | |
6465 | (IX86_BUILTIN_PCOMLED): Ditto. | |
6466 | (IX86_BUILTIN_PCOMGTD): Ditto. | |
6467 | (IX86_BUILTIN_PCOMGED): Ditto. | |
6468 | (IX86_BUILTIN_PCOMFALSED): Ditto. | |
6469 | (IX86_BUILTIN_PCOMTRUED): Ditto. | |
6470 | (IX86_BUILTIN_PCOMEQQ): Ditto. | |
6471 | (IX86_BUILTIN_PCOMNEQ): Ditto. | |
6472 | (IX86_BUILTIN_PCOMLTQ): Ditto. | |
6473 | (IX86_BUILTIN_PCOMLEQ): Ditto. | |
6474 | (IX86_BUILTIN_PCOMGTQ): Ditto. | |
6475 | (IX86_BUILTIN_PCOMGEQ): Ditto. | |
6476 | (IX86_BUILTIN_PCOMFALSEQ): Ditto. | |
6477 | (IX86_BUILTIN_PCOMTRUEQ): Ditto. | |
6478 | (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to | |
6479 | OPTION_MASK_ISA_ROUND for instructions that are shared between | |
6480 | SSE4.1 and SSE5. | |
6481 | (bdesc_2arg): Ditto. | |
6482 | (bdesc_sse_3arg): Ditto. | |
6483 | (enum multi_arg_type): New enum for describing the various SSE5 | |
6484 | intrinsic argument types. | |
6485 | (bdesc_multi_arg): New table for SSE5 intrinsics. | |
6486 | (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support. | |
6487 | (ix86_expand_multi_arg_builtin): New function for creating SSE5 | |
6488 | intrinsics. | |
6489 | (ix86_expand_builtin): Add SSE5 intrinsic support. | |
6490 | (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4 | |
6491 | operand instructions. | |
6492 | (ix86_expand_sse5_multiple_memory): New function to split the | |
6493 | second memory reference from SSE5 instructions. | |
6494 | (type_has_variadic_args_p): Delete in favor of stdarg_p. | |
6495 | (ix86_return_pops_args): Use stdarg_p to determine if the function | |
6496 | has variable arguments. | |
6497 | (ix86_setup_incoming_varargs): Ditto. | |
6498 | (x86_this_parameter): Ditto. | |
6499 | ||
6500 | * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add | |
6501 | declaration. | |
6502 | (ix86_expand_sse5_pack): Ditto. | |
6503 | (ix86_sse5_valid_op_p): Ditto. | |
6504 | (ix86_expand_sse5_multiple_memory): Ditto. | |
6505 | ||
6506 | * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC | |
6507 | constant for SSE5 support. | |
6508 | (UNSPEC_SSE5_UNSIGNED_CMP): Ditto. | |
6509 | (UNSPEC_SSE5_TRUEFALSE): Ditto. | |
6510 | (UNSPEC_SSE5_PERMUTE): Ditto. | |
6511 | (UNSPEC_SSE5_ASHIFT): Ditto. | |
6512 | (UNSPEC_SSE5_LSHIFT): Ditto. | |
6513 | (UNSPEC_FRCZ): Ditto. | |
6514 | (UNSPEC_CVTPH2PS): Ditto. | |
6515 | (UNSPEC_CVTPS2PH): Ditto. | |
6516 | (PCOM_FALSE): Add new constant for true/false SSE5 comparisons. | |
6517 | (PCOM_TRUE): Ditto. | |
6518 | (COM_FALSE_S): Ditto. | |
6519 | (COM_FALSE_P): Ditto. | |
6520 | (COM_TRUE_S): Ditto. | |
6521 | (COM_TRUE_P): Ditto. | |
6522 | (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types. | |
6523 | (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg | |
6524 | types. | |
6525 | (memory attribute): Ditto. | |
6526 | (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. | |
6527 | Use SSE4_1_ROUND_* constants instead of hard coded numbers. | |
6528 | (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. | |
6529 | (floor<mode>2): Ditto. | |
6530 | (ceil<mode>2): Ditto. | |
6531 | (btrunc<mode>2): Ditto. | |
6532 | (nearbyintdf2): Ditto. | |
6533 | (nearbyintsf2): Ditto. | |
6534 | (sse_setccsf): Disable if SSE5. | |
6535 | (sse_setccdf): Ditto. | |
6536 | (sse5_setcc<mode>): New support for SSE5 conditional move. | |
6537 | (sse5_pcmov_<mode>): Ditto. | |
6538 | ||
6539 | * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5. | |
6540 | (SSEMODEF4): Ditto. | |
6541 | (SSEMODEF2P): Ditto. | |
6542 | (ssemodesuffixf4): New mode attribute for SSE5. | |
6543 | (ssemodesuffixf2s): Ditto. | |
6544 | (ssemodesuffixf2c): Ditto. | |
6545 | (sserotatemax): Ditto. | |
6546 | (ssescalarmode): Ditto. | |
6547 | (sse_maskcmpv4sf3): Disable if SSE5. | |
6548 | (sse_maskcmpv2df3): Ditto. | |
6549 | (sse_vmmaskcmpv4sf3): Ditto. | |
6550 | (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add | |
6551 | instructions. | |
6552 | (sse5_vmfmadd<mode>4): Ditto. | |
6553 | (sse5_fmsub<mode>4): Ditto. | |
6554 | (sse5_vmfmsub<mode>4): Ditto. | |
6555 | (sse5_fnmadd<mode>4): Ditto. | |
6556 | (sse5_vmfnmadd<mode>4): Ditto. | |
6557 | (sse5_fnmsub<mode>4): Ditto. | |
6558 | (sse5_vmfnmsub<mode>4): Ditto. | |
6559 | (sse5i_fmadd<mode>4): Ditto. | |
6560 | (sse5i_fmsub<mode>4): Ditto. | |
6561 | (sse5i_fnmadd<mode>4): Ditto. | |
6562 | (sse5i_fnmsub<mode>4): Ditto. | |
6563 | (sse5i_vmfmadd<mode>4): Ditto. | |
6564 | (sse5i_vmfmsub<mode>4): Ditto. | |
6565 | (sse5i_vmfnmadd<mode>4): Ditto. | |
6566 | (sse5i_vmfnmsub<mode>4): Ditto. | |
6567 | (mulv16qi3): Add SSE5 support. | |
6568 | (mulv4si3): Ditto. | |
6569 | (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5. | |
6570 | (sse2_mulv4si3): Disable if SSE5. | |
6571 | (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1. | |
6572 | (sse4_1_roundps): Ditto. | |
6573 | (sse4_1_roundsd): Ditto. | |
6574 | (sse4_1_roundss): Ditto. | |
6575 | (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will | |
6576 | be generated. | |
6577 | (sse_maskcmpsf3): Ditto. | |
6578 | (sse_vmmaskcmpv4sf3): Ditto. | |
6579 | (sse2_maskcmpv2df3): Ditto. | |
6580 | (sse2_maskcmpdf3): Ditto. | |
6581 | (sse2_vmmaskcmpv2df3): Ditto. | |
6582 | (sse2_eq<mode>3): Ditto. | |
6583 | (sse2_gt<mode>3): Ditto. | |
6584 | (sse5_pcmov_<mode>): Add SSE5 support. | |
6585 | (vec_unpacku_hi_v16qi): Ditto. | |
6586 | (vec_unpacks_hi_v16qi): Ditto. | |
6587 | (vec_unpacku_lo_v16qi): Ditto. | |
6588 | (vec_unpacks_lo_v16qi): Ditto. | |
6589 | (vec_unpacku_hi_v8hi): Ditto. | |
6590 | (vec_unpacks_hi_v8hi): Ditto. | |
6591 | (vec_unpacku_lo_v8hi): Ditto. | |
6592 | (vec_unpacks_lo_v8hi): Ditto. | |
6593 | (vec_unpacku_hi_v4si): Ditto. | |
6594 | (vec_unpacks_hi_v4si): Ditto. | |
6595 | (vec_unpacku_lo_v4si): Ditto. | |
6596 | (vec_unpacks_lo_v4si): Ditto. | |
6597 | (sse5_pmacsww): New SSE5 intrinsic insn. | |
6598 | (sse5_pmacssww): Ditto. | |
6599 | (sse5_pmacsdd): Ditto. | |
6600 | (sse5_pmacssdd): Ditto. | |
6601 | (sse5_pmacssdql): Ditto. | |
6602 | (sse5_pmacssdqh): Ditto. | |
6603 | (sse5_pmacsdqh): Ditto. | |
6604 | (sse5_pmacsswd): Ditto. | |
6605 | (sse5_pmacswd): Ditto. | |
6606 | (sse5_pmadcsswd): Ditto. | |
6607 | (sse5_pmadcswd): Ditto. | |
6608 | (sse5_pcmov_<move>): Conditional move support on SSE5. | |
6609 | (sse5_phaddbw): New SSE5 intrinsic insn. | |
6610 | (sse5_phaddbd): Ditto. | |
6611 | (sse5_phaddbq): Ditto. | |
6612 | (sse5_phaddwd): Ditto. | |
6613 | (sse5_phaddwq): Ditto. | |
6614 | (sse5_phadddq): Ditto. | |
6615 | (sse5_phaddubw): Ditto. | |
6616 | (sse5_phaddubd): Ditto. | |
6617 | (sse5_phaddubq): Ditto. | |
6618 | (sse5_phadduwd): Ditto. | |
6619 | (sse5_phadduwq): Ditto. | |
6620 | (sse5_phaddudq): Ditto. | |
6621 | (sse5_phsubbw): Ditto. | |
6622 | (sse5_phsubwd): Ditto. | |
6623 | (sse5_phsubdq): Ditto. | |
6624 | (sse5_pperm): Ditto. | |
6625 | (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5. | |
6626 | (sse5_pperm_zero_v16qi_v8hi): Ditto. | |
6627 | (sse5_pperm_sign_v8hi_v4si): Ditto. | |
6628 | (sse5_pperm_zero_v8hi_v4si): Ditto. | |
6629 | (sse5_pperm_sign_v4si_v2di): Ditto. | |
6630 | (sse5_pperm_sign_v4si_v2di): Ditto. | |
6631 | (sse5_pperm_pack_v2di_v4si): Ditto. | |
6632 | (sse5_pperm_pack_v4si_v8hi): Ditto. | |
6633 | (sse5_pperm_pack_v8hi_v16qi): Ditto. | |
6634 | (sse5_perm<mode>): New SSE5 intrinsic insn. | |
6635 | (rotl<mode>3): Ditto. | |
6636 | (sse5_rotl<mode>3): Ditto. | |
6637 | (sse5_ashl<mode>3): Ditto. | |
6638 | (sse5_lshl<mode>3): Ditto. | |
6639 | (sse5_frcz<mode>2): Ditto. | |
6640 | (sse5s_frcz<mode>2): Ditto. | |
6641 | (sse5_cvtph2ps): Ditto. | |
6642 | (sse5_cvtps2ph): Ditto. | |
6643 | (sse5_vmmaskcmp<mode>3): Ditto. | |
6644 | (sse5_com_tf<mode>3): Ditto. | |
6645 | (sse5_maskcmp<mode>3): Ditto. | |
6646 | (sse5_maskcmp_uns<mode>3): Ditto. | |
6647 | (sse5_maskcmp_uns2<mode>3): Ditto. | |
6648 | (sse5_pcom_tf<mode>3): Ditto. | |
6649 | ||
6650 | * config/i386/predicates.md (const_0_to_31_operand): New predicate | |
6651 | to match 0..31. | |
6652 | (sse5_comparison_float_operator): New predicate to match the | |
6653 | comparison operators supported by the SSE5 com instruction. | |
6654 | (ix86_comparison_int_operator): New predicate to match just the | |
6655 | signed int comparisons. | |
6656 | (ix86_comparison_uns_operator): New predicate to match just the | |
6657 | unsigned int comparisons. | |
6658 | ||
6659 | * doc/invoke.texi (-msse5): Add documentation. | |
6660 | (-mfused-madd): Ditto. | |
6661 | ||
6662 | * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics. | |
6663 | ||
6664 | * config.gcc (i[34567]86-*-*): Include bmmintrin.h and | |
6665 | mmintrin-common.h. | |
6666 | (x86_64-*-*): Ditto. | |
6667 | ||
6668 | * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit. | |
6669 | ||
6670 | * config/i386/bmmintrin.h: New file, provide common x86 compiler | |
6671 | intrinisics for SSE5. | |
6672 | ||
6673 | * config/i386/smmintrin.h: Move instructions shared with SSE5 to | |
6674 | mmintrin-common.h. | |
6675 | ||
6676 | * config/i386/mmintrin-common.h: New file, to contain common | |
6677 | instructions between SSE4.1 and SSE5. | |
6678 | ||
6679 | * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use | |
6680 | FOREACH_FUNCTION_ARGS to iterate over the argument list. | |
6681 | (gen_regparm_prefix): Ditto. | |
6682 | ||
6683 | * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use | |
6684 | FOREACH_FUNCTION_ARGS to iterate over the argument list. Use | |
6685 | prototype_p to determine if a function is prototyped. | |
6686 | ||
6687 | 2007-09-12 Janis Johnson <janis187@us.ibm.com> | |
6688 | ||
6689 | * config/dfp-bit.c (dfp_conversion_exception): New function. | |
6690 | (DFP_TO_DFP) Add new variants to use direct conversions in decNumber. | |
6691 | (DFP_TO_INT): Ditto. | |
6692 | (INT_TO_DFP): Ditto. | |
6693 | * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New. | |
6694 | ||
6695 | 2007-09-12 Jakub Jelinek <jakub@redhat.com> | |
6696 | ||
6697 | PR target/32338 | |
6698 | * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage | |
6699 | before sp restoration even when total_size is 0, but | |
6700 | frame_pointer_needed. | |
6701 | ||
6702 | 2007-09-12 Bob Wilson <bob.wilson@acm.org> | |
6703 | ||
6704 | * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy. | |
6705 | (xtensa_copy_incoming_a7): Use start_sequence instead of | |
6706 | push_to_sequence. Stash insns in vararg_a7_copy for builtin_saveregs. | |
6707 | (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start | |
6708 | of the saveregs sequence. | |
6709 | ||
6710 | 2007-09-12 Richard Sandiford <richard@codesourcery.com> | |
6711 | ||
6712 | * c-tree.h (grokfield): Add a "tree *" argument. | |
6713 | * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes. | |
6714 | Chain nested decl attributes to it. Don't call decl_attributes here. | |
6715 | (groktypename): Pass grokdeclarator a pointer to the attribute list. | |
6716 | (start_decl, grokparm, push_parm_decl, start_function): Likewise. | |
6717 | (grokfield): Take a pointer to the decl's attributes and pass | |
6718 | it to grokdeclarator. | |
6719 | * c-parser.c (c_parser_struct_declaration): Update the calls to | |
6720 | grokfield. Call decl_attributes for anonymous struct and union | |
6721 | fields. | |
6722 | ||
6723 | 2007-09-12 Jan Hubicka <jh@suse.cz> | |
6724 | ||
6725 | * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. | |
6726 | ||
6727 | 2007-09-12 Ira Rosen <irar@il.ibm.com> | |
6728 | ||
6729 | PR tree-optimization/32377 | |
6730 | * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish | |
6731 | between positive and negative dependence distance using DDR_REVERSED_P. | |
6732 | ||
6733 | 2007-09-12 Dorit Nuzman <dorit@il.ibm.com> | |
6734 | ||
6735 | PR tree-optimization/33373 | |
6736 | * tree-vect-analyze (vect_determine_vectorization_factor): Call | |
6737 | TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. | |
6738 | ||
6739 | 2007-09-12 Jan Hubicka <jh@suse.cz> | |
6740 | ||
6741 | PR target/33393 | |
6742 | * config/i386/i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): | |
6743 | Disable for !SSE_MATH | |
6744 | ||
6745 | 2007-09-12 Christian Bruel <christian.bruel@st.com> | |
6746 | ||
6747 | * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs. | |
6748 | * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. | |
6749 | ||
6750 | 2007-09-12 Ira Rosen <irar@il.ibm.com> | |
6751 | ||
6752 | * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector | |
6753 | for oprnd1 if not required. | |
6754 | (vectorizable_operation): Use scalar operand in SLP in case of | |
6755 | shift with scalar argument. | |
6756 | ||
6757 | 2007-09-12 Ira Rosen <irar@il.ibm.com> | |
6758 | ||
6759 | * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and | |
6760 | minimum to 1. | |
6761 | ||
6762 | 2007-09-11 James E. Wilson <wilson@specifix.com> | |
6763 | ||
6764 | * defaults.h (DWARF2_UNWIND_INFO): Don't define if | |
6765 | TARGET_UNWIND_INFO is defined. | |
6766 | * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef | |
6767 | after definition. | |
6768 | ||
6769 | 2007-09-12 Kaz Kojima <kkojima@gcc.gnu.org> | |
6770 | ||
6771 | * config/sh/sh.c (calc_live_regs): Use | |
6772 | current_function_saves_all_registers instead of | |
6773 | current_function_has_nonlocal_label. | |
6774 | (sh_allocate_initial_value): Likewise. | |
6775 | (sh_get_pr_initial_val): Likewise. | |
6776 | * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise. | |
6777 | * config/sh/sh.md (load_ra): Likewise. | |
6778 | ||
6779 | 2007-09-12 Hans-Peter Nilsson <hp@axis.com> | |
6780 | ||
6781 | * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc. | |
6782 | ||
6783 | PR target/33360 | |
6784 | * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in | |
6785 | GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation. | |
6786 | ||
6787 | 2007-09-12 Sa Liu <saliu@de.ibm.com> | |
6788 | ||
6789 | * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as | |
6790 | operands to DFmode GE or LE compares. | |
6791 | ||
6792 | 2007-09-12 Bernd Schmidt <bernd.schmidt@analog.com> | |
6793 | ||
6794 | * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS, | |
6795 | REG_CLASS_NAMES): Add P0REGS. | |
6796 | (REGNO_REG_CLASS): Return it where appropriate. | |
6797 | (REG_CLASS_FROM_CONSTRAINT): Add 'qA'. | |
6798 | (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled. | |
6799 | * doc/md.texi (Blackfin family): Document 'q' constraints. | |
6800 | ||
6801 | 2007-09-11 Steve Kenton <skenton@ou.edu> | |
6802 | ||
6803 | * pa/linux-unwind.h: Guard with inhibit_libc. | |
6804 | * pa/hpux-unwind.h: Likewise. | |
6805 | ||
6806 | 2007-09-11 David Daney <ddaney@avtrex.com> | |
6807 | ||
6808 | * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options. | |
6809 | * doc/install.texi: Document new --with-llsc and --without-llsc | |
6810 | options. | |
6811 | * config.gcc: Handle --with-llsc and --without-llsc configure options. | |
6812 | * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction | |
6813 | in %| and %- operand codes. Depend on GENERATE_SYNC instead of | |
6814 | ISA_HAS_SYNC. | |
6815 | (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>, | |
6816 | sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, | |
6817 | sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, | |
6818 | sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, | |
6819 | sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on | |
6820 | GENERATE_LL_SC instead of ISA_HAS_LL_SC. | |
6821 | * config/mips/mips.opt (mllsc): New option. | |
6822 | * config/mips/mips.c (mips_llsc): Define variable. | |
6823 | (mips_handle_option): Handle mllsc option. | |
6824 | (override_options): Set mips_print_operand_punct for '|' and '-'. | |
6825 | (print_operand): Add new %| and %- operand codes. | |
6826 | * config/mips/mips.h (mips_llsc_setting): New enum type. | |
6827 | (mips_llsc): Declare. | |
6828 | (OPTION_DEFAULT_SPECS): Add llsc handling. | |
6829 | (GENERATE_SYNC): New macro. | |
6830 | (GENERATE_LL_SC): New macro. | |
6831 | (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, | |
6832 | MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, | |
6833 | MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions | |
6834 | in %| and %- operand codes. | |
6835 | ||
6836 | 2007-09-11 Eric Botcazou <ebotcazou@adacore.com> | |
6837 | ||
6838 | * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with | |
6839 | TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P. | |
6840 | ||
6841 | 2007-09-11 Jason Merrill <jason@redhat.com> | |
6842 | ||
6843 | PR middle-end/27945 | |
6844 | * stor-layout.c (layout_decl): Do pack variable size fields. | |
6845 | ||
6846 | 2007-09-11 Maxim Kuvyrkov <maxim@codesourcery.com> | |
6847 | ||
6848 | * config/m68k/predicates.md (movsi_const0_operand, | |
6849 | non_symbolic_call_operand): New predicates. | |
6850 | ||
6851 | * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac): | |
6852 | New constraints. | |
6853 | * doc/md.texi (Constraints for Particular Machines: Motorola 680x0): | |
6854 | Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ, | |
6855 | CW, CZ, CS, Ap and Ac. | |
6856 | ||
6857 | * config/m68k/m68k.md (UNSPEC_IB): New constant. | |
6858 | (constraints.md): New include. | |
6859 | (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access, | |
6860 | opx_mem, opy_mem, op_mem, guess, split): New attributes. | |
6861 | (movdf_internal): Name pattern. Fix to use alternatives. Add split. | |
6862 | Specify attributes. | |
6863 | (pushdi): Add split. | |
6864 | (tstsi_internal): Name pattern. Fix to use alternatives. Specify | |
6865 | attributes. Split tstsi_internal_68020_cf from it. | |
6866 | (tstsi_internal_68020_cf): New pattern. | |
6867 | (tsthi_internal, tstqi_internal): Name pattern. Specify attributes. | |
6868 | (tst<mode>_cf): Specify attributea. | |
6869 | (cmpsi_cf): Name pattern. Specify attributes. | |
6870 | (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute. | |
6871 | (pushexthisi_const): Fix to use alternatives. Specify | |
6872 | attributes. | |
6873 | (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60 | |
6874 | from it. Fix to use alternatives. Specify attributes. | |
6875 | (movsi_const0_68040_10, movsi_const0_68040_60): New patterns. | |
6876 | (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify | |
6877 | attributes. | |
6878 | (movsf_cf_soft): Specify attributes. | |
6879 | (movdf_cf_soft): Add split. | |
6880 | (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4, | |
6881 | cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, | |
6882 | 68k_extendqisi2, truncdfsf2_cf): Specify attributes. | |
6883 | (truncdfsf2_68881): Name pattern. Specify attributes. | |
6884 | (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf, | |
6885 | floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf, | |
6886 | fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32): | |
6887 | Specify attributes. | |
6888 | (addsi3_5200): Fix to use alternatives. Specify attributes. | |
6889 | Add splits. | |
6890 | (add<mode>3_cf, subdi_dishl32): Specify attributes. | |
6891 | (subsi3): Add alternative for subq.l. Specify attributes. | |
6892 | (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes. | |
6893 | (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify | |
6894 | attributes. | |
6895 | (umulhisi3): Specify attributes. | |
6896 | (mulhisisi3_z): Name pattern. Specify attributes. | |
6897 | (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200, | |
6898 | sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32, | |
6899 | subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3, | |
6900 | bsetmemqi): Specify attributes. | |
6901 | (bsetmemqi_ext): Name pattern. Specify attributes. | |
6902 | (bclrmemqi): Specify attributes. | |
6903 | (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes. | |
6904 | (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify | |
6905 | attributes. | |
6906 | (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name | |
6907 | pattern. Specify attributes. | |
6908 | (jump): Specify attributes. | |
6909 | (tablejump_internal): Name pattern. Specify attributes. | |
6910 | (call_value): Split into non_symbolic_call_value, | |
6911 | symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use | |
6912 | alternatives. Specify attributes. | |
6913 | (non_symbolic_call_value, symbolic_call_value_jsr, | |
6914 | symbolic_call_value_bsr): New patterns. | |
6915 | (nop, return, unlink, indirect_jump): Specify attributes. | |
6916 | (trap): Fix condition. Specify attributes. | |
6917 | (ib): New pattern. | |
6918 | ||
6919 | * config/m68k/m68k.c (m68k_symbolic_call_var): New variable. | |
6920 | (override_options): Initialize it. Initialize m68k_sched_cpu. | |
6921 | (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h. | |
6922 | (const_method): Make global, rename to m68k_const_method. | |
6923 | (const_int_cost, output_move_const_into_data_reg): Update. | |
6924 | (output_move_double): Parametrize to emit rtl code, rename to | |
6925 | handle_move_double. | |
6926 | (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi, | |
6927 | emit_movsi): New static functions. | |
6928 | (output_move_double): New function with semantics of old | |
6929 | output_move_double. | |
6930 | (m68k_emit_move_double): New function. | |
6931 | (m68k_sched_cpu): New variable. | |
6932 | (attr_op_type): New enum. | |
6933 | (sched_guess_p): New variable. | |
6934 | (sched_address_type, sched_operand_type, sched_attr_op_type): | |
6935 | New static functions. | |
6936 | (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, | |
6937 | m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions. | |
6938 | (sched_branch_type): New static variable. | |
6939 | (m68k_sched_branch_type): New function. | |
6940 | * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum. | |
6941 | (m68k_symbolic_call_var): Declare. | |
6942 | (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c. | |
6943 | (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu, | |
6944 | m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, | |
6945 | m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type): | |
6946 | Declare. | |
6947 | ||
6948 | 2007-09-11 Jakub Jelinek <jakub@redhat.com> | |
6949 | ||
6950 | * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. | |
6951 | * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue | |
6952 | error if __builtin_va_arg_pack_len () wasn't optimized out during | |
6953 | inlining. | |
6954 | * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len () | |
6955 | with the number of inline's anonymous arguments. | |
6956 | * doc/extend.texi: Document __builtin_va_arg_pack_len (). | |
6957 | ||
6958 | 2007-09-11 Zdenek Dvorak <ook@ucw.cz> | |
6959 | ||
6960 | * fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var. | |
6961 | ||
6962 | 2007-09-11 Jan Hubicka <jh@suse.cz> | |
6963 | ||
6964 | * config/i386/i386.h (ix86_tune_indices): Add | |
6965 | X86_TUNE_INTER_UNIT_CONVERSIONS. | |
6966 | (TARGET_INTER_UNIT_CONVERSIONS): New. | |
6967 | * config/i386/i386.md (floatsi expanders): Remove redundant check | |
6968 | for SImode source; offload to memory when asked for. | |
6969 | (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse | |
6970 | floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): | |
6971 | Update conditions; | |
6972 | (floatsisf2_mixed_memory, floatsisf2_sse_memory, | |
6973 | floatsidf2_mixed_memory, floatsidf2_sse_memory | |
6974 | floatdisf2_mixed_memory, floatsisf2_sse_memory, | |
6975 | floatsidf2_mixed_memory, floatsidf2_sse_memory): New. | |
6976 | ||
6977 | 2007-09-11 Jan Hubicka <jh@suse.cz> | |
6978 | ||
6979 | * toplev.c (process_options): all frontends now do unit-at-a-time. | |
6980 | * cgraphunit.c: update comments. | |
6981 | (cgraph_expand_function): call passmanager dirrectly; emit thunks. | |
6982 | * c-decl.c (finish_function): use cgraph_add_new_function. | |
6983 | * function.c (expand_function_end): We are always unit-at-a-time. | |
6984 | ||
6985 | 2007-09-11 Richard Sandiford <richard@codesourcery.com> | |
6986 | ||
6987 | * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor | |
6988 | settings for MIPS16. | |
6989 | (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p. | |
6990 | ||
6991 | 2007-09-11 Richard Sandiford <richard@codesourcery.com> | |
6992 | ||
6993 | * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of | |
6994 | SYMBOL_FORCE_TO_MEM constants. | |
6995 | (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands. | |
6996 | (mips16_rewrite_pool_refs_info): New structure. | |
6997 | (mips16_rewrite_pool_constant): New function, split out from... | |
6998 | (mips16_rewrite_pool_refs): ...here. Take a pointer to a | |
6999 | mips16_rewrite_pool_refs_info structure rather than a pointer | |
7000 | to a constant pool. Force force_to_mem_operands into memory. | |
7001 | (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs. | |
7002 | * config/mips/predicates.md (force_to_mem_operand): New predicate. | |
7003 | * config/mips/constraints.md (kf): New constraint. | |
7004 | * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative. | |
7005 | (*movsi_mips16): Likewise. | |
7006 | ||
7007 | 2007-09-11 Richard Sandiford <richard@codesourcery.com> | |
7008 | Nigel Stephens <nigel@mips.com> | |
7009 | David Ung <davidu@mips.com> | |
7010 | ||
7011 | * config/mips/mips.h (CONSTANT_POOL_COST): Move to... | |
7012 | * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16. | |
7013 | (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost) | |
7014 | (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost) | |
7015 | (mips_zero_extend_cost): New functions. | |
7016 | (mips_rtx_costs): Treat COMPARE constants as having zero cost. | |
7017 | Use the new functions. Tweak many cost estimates, both here | |
7018 | and in the new subroutines. Return false when the cost of the | |
7019 | operands has not been calculated. Check for *clear_upper32. | |
7020 | Check for floating-point multiply-add, reciprocal and rsqrt | |
7021 | patterns. Handle comparison and rotation codes. | |
7022 | ||
7023 | 2007-09-11 Danny Smith <dannysmith@users.sourceforge.net> | |
7024 | ||
7025 | * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't | |
7026 | override default. | |
7027 | * config/i386/i386.c (get_dllimport_decl): Don't strip | |
7028 | FASTCALL_PREFIX. | |
7029 | ||
7030 | 2007-09-10 Janis Johnson <janis187@us.ibm.com> | |
7031 | ||
7032 | PR c/30013 | |
7033 | * config/dfp-bit.c: Don't skip TFmode conversions; move strto* | |
7034 | declarations to top. | |
7035 | (DFP_TO_BFP): Use for either XFmode or TFmode. | |
7036 | (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast | |
7037 | of BFP_VIA_TYPE. | |
7038 | * config/dfp-bit.h: Include float.h. | |
7039 | (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long | |
7040 | double is one of these modes, rather than using LIBGCC_HAS_*F_MODE | |
7041 | which doesn't mean the same thing. | |
7042 | (BFP_KIND): Use 4 to mean TFmode. | |
7043 | (BFP_FMT): Specify the number of decimal digits based on the | |
7044 | number of mantissa digits. | |
7045 | (BFP_VIA_TYPE): Binary float type to use as cast for sprintf. | |
7046 | (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants. | |
7047 | (STR_TO_BFP): Use strtold for XFmode or TFmode. | |
7048 | (TFtype): Define if TFmode is supported. | |
7049 | * doc/libgcc.texi (Decimal float library routines): Document | |
7050 | TF conversion functions. | |
7051 | ||
7052 | 2007-09-10 Chao-ying Fu <fu@mips.com> | |
7053 | ||
7054 | * config/mips/mips.c (mips_scalar_mode_supported_p): Declare. | |
7055 | (TARGET_SCALAR_MODE_SUPPORTED_P): Define. | |
7056 | (mips_emit_compare): Process fixed-point modes. | |
7057 | (mips_pad_arg_upward): Support fixed-point types. | |
7058 | (override_options): Allow fixed-point modes in accumulators. | |
7059 | (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers. | |
7060 | (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode, | |
7061 | V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP. | |
7062 | (mips_scalar_mode_supported_p): New function to accept fixed-point | |
7063 | modes if the width is not greater than two BITS_PER_WORD. | |
7064 | * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE, | |
7065 | LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, | |
7066 | SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, | |
7067 | LONG_LONG_ACCUM_TYPE_SIZE): Define. | |
7068 | * config/mips/mips.md ("d"): Update mode attribute for fixed-point | |
7069 | modes. | |
7070 | ("IMODE"): New mode attribute. | |
7071 | (mips-fixed.md): Include. | |
7072 | * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT, | |
7073 | ACCUM, UACCUM. | |
7074 | * config/mips/mips-fixed.md: New file. | |
7075 | ||
7076 | 2007-09-11 Ben Elliston <bje@au.ibm.com> | |
7077 | ||
7078 | * config/spu/spu.md: Formatting fixes. | |
7079 | ||
7080 | 2007-09-10 Janis Johnson <janis187@us.ibm.com> | |
7081 | ||
7082 | * config/dfp-bit.c (dfp_unary_func): Delete. | |
7083 | (dfp_unary_op): Delete. | |
7084 | (dfp_binary_op): Use decFloat functions instead of decNumber | |
7085 | functions for binary operations. | |
7086 | (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation. | |
7087 | (dnn_binary_op): Call dfp_binary_op with decFloat rather than | |
7088 | DFP_C_TYPE. | |
7089 | (dfp_compare_op): Use decFloat functions insteadof decNumber | |
7090 | functions for comparisons. | |
7091 | (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation. | |
7092 | (dnn_binary_op): Call dfp_compare_op with decFloat rather than | |
7093 | DFP_C_TYPE. | |
7094 | (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for | |
7095 | call to dxx_binary_op and decFloat function. | |
7096 | (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for | |
7097 | calls to dxx_binary_op and decFloat function. | |
7098 | * config/dfp-bit.h: Include decFloat header files. | |
7099 | (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD, | |
7100 | DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE, | |
7101 | DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN, | |
7102 | DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths. | |
7103 | ||
7104 | 2007-09-10 Harsha Jagasia <harsha.jagasia@amd.com> | |
7105 | Jan Sjodin <jan.sjodin@amd.com> | |
7106 | ||
7107 | * tree-vect-analyze.c (vect_analyze_operations): Change | |
7108 | comparison of loop iterations with threshold to less than | |
7109 | or equal to instead of less than. Reduce | |
7110 | min_scalar_loop_bound by one. | |
7111 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): | |
7112 | Change prologue and epilogue iterations estimate to vf/2, | |
7113 | when unknown at compile-time. Change versioning guard | |
7114 | cost to taken_branch_cost. If peeling for alignment is | |
7115 | unknown at compile-time, change peel guard costs to one | |
7116 | taken branch and one not-taken branch per peeled loop. | |
7117 | If peeling for alignment is known but number of scalar loop | |
7118 | iterations is unknown at compile-time, change peel guard | |
7119 | costs to one taken branch per peeled loop. Change the cost | |
7120 | model equation to consider vector iterations as the loop | |
7121 | iterations less the prologue and epilogue iterations. | |
7122 | Change outside vector cost check to less than or equal to | |
7123 | zero instead of equal to zero. | |
7124 | (vect_do_peeling_for_loop_bound): Reduce | |
7125 | min_scalar_loop_bound by one. | |
7126 | * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and | |
7127 | TARG_COND_NOT_TAKEN_BRANCH_COST. | |
7128 | * config/i386/i386.h (processor_costs): Add | |
7129 | scalar_stmt_cost, scalar_load_cost, scalar_store_cost, | |
7130 | vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost, | |
7131 | vec_align_load_cost, vect_unalign_load_cost, | |
7132 | vec_store_cost, cond_taken_branch_cost, | |
7133 | cond_not_taken_branch_cost. | |
7134 | Define macros for x86 costs. | |
7135 | * config/i386/i386.c: | |
7136 | (size_cost): Set scalar_stmt_cost, scalar_load_cost, | |
7137 | scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, | |
7138 | scalar_to_vec_cost, vec_align_load_cost, | |
7139 | vect_unalign_load_cost, vec_store_cost, | |
7140 | cond_taken_branch_cost, cond_not_taken_branch_cost to one. | |
7141 | (i386_cost, i486_cost, pentium_cost, pentiumpro_cost, | |
7142 | geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, | |
7143 | core2_cost, generic64_cost, generic32_cost): Set to default | |
7144 | untuned costs. | |
7145 | (k8_cost, amdfam10_cost): Costs for vectorization tuned. | |
7146 | (x86_builtin_vectorization_cost): New. | |
7147 | ||
7148 | 2007-09-10 Janis Johnson <janis187@us.ibm.com> | |
7149 | Ben Elliston <bje@au.ibm.com> | |
7150 | ||
7151 | * dfp.c: Include decimal128Local.h; | |
7152 | (dfp_byte_swap): Remove. | |
7153 | (encode_decimal32, decode_decimal32): Don't handle endianness. | |
7154 | (encode_decimal64, decode_decimal64): Ditto. | |
7155 | (encode_decimal128, decode_decimal128): Ditto. | |
7156 | * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto. | |
7157 | (__swap64): Remove. | |
7158 | (host_to_ieee_64, ieee_to_host_64): Don't handle endianness. | |
7159 | (__swap128): Remove | |
7160 | (host_to_ieee_128, ieee_to_host_128): Don't handle endianness. | |
7161 | * Makefile.in (DECNUM_H): Add decimal128Local.h. | |
7162 | ||
7163 | 2007-09-10 David Daney <ddaney@avtrex.com> | |
7164 | ||
7165 | * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in | |
7166 | define_constants. | |
7167 | (memory_barrier): Rewrote as an insn that clobbers memory. | |
7168 | ||
7169 | 2007-09-10 Richard Sandiford <richard@codesourcery.com> | |
7170 | ||
7171 | * config/mips/mips.c (mips_global_pointer): Check | |
7172 | call_really_used_regs instead of call_used_regs. | |
7173 | (mips_save_reg_p): Likewise. Save all call-saved registers | |
7174 | if current_function_saves_all_registers. Fix indentation. | |
7175 | No longer treat $18 as a special case. | |
7176 | (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT. | |
7177 | ||
7178 | 2007-09-10 Richard Sandiford <richard@codesourcery.com> | |
7179 | ||
7180 | * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro. | |
7181 | * config/mips/mips.c (mips_cpu_info_table): Mention it in the | |
7182 | the introductory comment. | |
7183 | (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. | |
7184 | (override_options): Don't test for it. | |
7185 | * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. | |
7186 | (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC. | |
7187 | * config/mips/vr.h: As for config/mips/sde.h. | |
7188 | ||
7189 | 2007-09-10 Trevor Smigiel <trevor_smigiel@playstation.sony.com> | |
7190 | Revital Eres <eres@il.ibm.com> | |
7191 | ||
7192 | * target.h (struct gcc_target.sched): New field: sms_res_mii. | |
7193 | (struct ddg): Define. | |
7194 | * target-def.h (TARGET_SCHED_SMS_RES_MII): Define. | |
7195 | (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII. | |
7196 | * config/spu/spu.c: Include ddg.h. | |
7197 | (TARGET_SCHED_SMS_RES_MII): Define. | |
7198 | (spu_sms_res_mii): New function to calculate mii. | |
7199 | * modulo-sched (res_MII): Use it. | |
7200 | * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII. | |
7201 | ||
7202 | 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com> | |
7203 | ||
7204 | * config/s390/s390.c (s390_dump_pool): Create copy of constant | |
7205 | pool entries since they might hold values that must not be shared. | |
7206 | ||
7207 | 2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu> | |
7208 | ||
7209 | * bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to | |
7210 | RTL level tracer pass. | |
7211 | * passes.c (init_optimization_passes): Move pass_tracer from | |
7212 | after pass_rtl_ifcvt to after pass_dce. | |
7213 | * tracer.c: Update copyright. | |
7214 | (layout_superblocks): Remove function. | |
7215 | (mark_bb_seen): New. | |
7216 | (bb_seen_p): New. | |
7217 | (count_insns): Change to estimate instructions in a Tree-SSA | |
7218 | statement. | |
7219 | (find_trace): Use bb_seen_p. | |
7220 | (tail_duplicate): Use bb_seen_p. Call add_phi_args_after_copy | |
7221 | after duplicate_block. | |
7222 | (tracer): Change prototype to match that of a pass execute | |
7223 | callback. | |
7224 | (gate_tracer): Rename from gate_handle_tracer. | |
7225 | (rest_of_handle_tracer): Remove function. | |
7226 | * rtl.h: Remove prototype for tracer. | |
7227 | * testsuite/gcc.dg/tree-prof/tracer-1.c: New. | |
7228 | ||
7229 | 2007-09-10 Uros Bizjak <ubizjak@gmail.com> | |
7230 | ||
7231 | PR target/33369 | |
7232 | * config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode. | |
7233 | Use 'N' operand constraint for op2. | |
7234 | (lshr<mode>3): Ditto. | |
7235 | (ashl<mode>3): Ditto. | |
7236 | (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2. | |
7237 | (vec_shr_<mode>): Ditto. | |
7238 | * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128, | |
7239 | IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode. | |
7240 | ||
7241 | 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com> | |
7242 | ||
7243 | * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"): | |
7244 | Change mode macro in the last real_2expN parameter to uppercase. | |
7245 | ||
7246 | 2007-09-10 Michael Matz <matz@suse.de> | |
7247 | ||
7248 | * tree-pass.h (pass_cselim): Declare new pass. | |
7249 | * passes.c (init_optimization_passes): Link in pass_cselim. | |
7250 | * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from | |
7251 | tree_ssa_phiopt; add do_store_elim parameter, handle it by calling | |
7252 | cond_store_replacement. | |
7253 | (condstoretemp): New static variable. | |
7254 | (cond_store_replacement): New function. | |
7255 | (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around | |
7256 | tree_ssa_phiopt_worker. | |
7257 | (struct name_to_bb): New. | |
7258 | (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr, | |
7259 | nt_init_block, nt_fini_block): New static functions. | |
7260 | (seen_ssa_names, nontrap_set): New static variables. | |
7261 | (gate_cselim, pass_cselim): Define new pass. | |
7262 | * common.opt (ftree-cselim): New flag. | |
7263 | * toplev.c (process_options): Set flag_tree_cselim if required. | |
7264 | ||
7265 | 2007-09-10 Hans-Peter Nilsson <hp@axis.com> | |
7266 | ||
7267 | * simplify-rtx.c (simplify_relational_operation_1): For recent | |
7268 | canonicalization, don't recurse if op1 equals both PLUS arguments. | |
7269 | ||
7270 | 2007-09-09 David Daney <ddaney@avtrex.com> | |
7271 | ||
7272 | * optabs.c (expand_sync_operation): Use plus insn if minus | |
7273 | CONST_INT_P(val). | |
7274 | (expand_sync_fetch_operation): Ditto. | |
7275 | ||
7276 | 2007-09-09 H.J. Lu <hongjiu.lu@intel.com> | |
7277 | ||
7278 | * config/i386/i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead | |
7279 | of cvtpq2ps. | |
7280 | (*floatsisf2_sse_vector): Likewise. | |
7281 | ||
7282 | 2007-09-09 Krister Walfridsson <cato@df.lth.se> | |
7283 | ||
7284 | * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1. | |
7285 | ||
7286 | 2007-09-09 H.J. Lu <hongjiu.lu@intel.com> | |
7287 | ||
7288 | * config/i386/i386.h (ix86_tune_indices): Rename | |
7289 | X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS. | |
7290 | (TARGET_USE_VECTOR_CONVERTS): Updated. | |
7291 | * config/i386/i386.c: Likewise. | |
7292 | ||
7293 | 2007-09-09 Sandra Loosemore <sandra@codesourcery.com> | |
7294 | Nigel Stephens <nigel@mips.com> | |
7295 | ||
7296 | * doc/invoke.texi (Overall Options): Add .sx file extension | |
7297 | as a synonym for .S. | |
7298 | * cppspec.c (known_suffixes): Likewise. | |
7299 | * gcc.c (default_compilers): Likewise. | |
7300 | ||
7301 | 2007-09-09 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
7302 | ||
7303 | PR target/30315 | |
7304 | * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete. | |
7305 | * simplify-rtx.c (simplify_relational_operation_1): Add the | |
7306 | canonicalization from i386.h. | |
7307 | * doc/md.texi (Canonicalization of Instructions): Document it. | |
7308 | ||
7309 | 2007-09-09 Jan Hubicka <jh@suse.cz> | |
7310 | Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
7311 | ||
7312 | * config/i386/i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS. | |
7313 | (TARGET_USE_VECTOR_CONVERTS): New. | |
7314 | * config/i386/i386.md: New post-reload splitters for converting | |
7315 | SF to DF and DF to SF. | |
7316 | (floatsi* expander): Special case vector conversions. | |
7317 | (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit, | |
7318 | floatsisf2_sse_vector_internunit, floatsisf2_sse_vector, | |
7319 | floatsidf2_mixed_vector, floatsidf2_sse_vector): New. | |
7320 | (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): | |
7321 | Disable when doing vector converts. | |
7322 | (floatsi<mode>2_i387): Disable when | |
7323 | * config/i386/sse.md (vec_dupv2df): Export. | |
7324 | * config/i386/i386.c (ix86_tune_features): Enable SSE conversions. | |
7325 | ||
7326 | 2007-09-09 Richard Guenther <rguenther@suse.de> | |
7327 | ||
7328 | * tree-ssa-operands.c (add_virtual_operand): Only mark | |
7329 | stores as has_volatile_ops if alias information is not available. | |
7330 | ||
7331 | 2007-09-09 Revital Eres <eres@il.ibm.com> | |
7332 | ||
7333 | * doc/contrib.texi: Add myself. | |
7334 | ||
7335 | 2007-09-09 Ira Rosen <irar@il.ibm.com> | |
7336 | ||
7337 | * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost, | |
7338 | stmt_vinfo_set_outside_of_loop_cost): New functions. | |
7339 | * tree-vect-transform.c (vect_get_cost_fields): Remove. | |
7340 | (vect_model_simple_cost): Call | |
7341 | stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost | |
7342 | field instead of calling vect_get_cost_fields. | |
7343 | (vect_model_store_cost, vect_model_load_cost): Likewise. | |
7344 | ||
7345 | 2007-09-09 Revital Eres <eres@il.ibm.com> | |
7346 | ||
7347 | * config/rs6000/rs6000.c (paired_init_builtins): Add const | |
7348 | declaration to bdesc_paired_preds variable. | |
7349 | (paired_expand_builtin): Likewise. | |
7350 | ||
7351 | 2007-09-09 Revital Eres <eres@il.ibm.com> | |
7352 | ||
7353 | * dbgcnt.def (sms_sched_loop): New counter. | |
7354 | * modulo-sched.c: Use sms_sched_loop instead of | |
7355 | MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to | |
7356 | perform swing modulo scheduling on. Include dbgcnt.h. | |
7357 | * Makefile.in: Add DBGCNT_H to modulo-sched.o. | |
7358 | * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER. | |
7359 | ||
7360 | 2007-09-09 Uros Bizjak <ubizjak@gmail.com> | |
7361 | ||
7362 | * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators. | |
7363 | Substitute all uses with ... | |
7364 | (MODEF): New mode iterator. | |
7365 | ||
7366 | (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints | |
7367 | from pre-regalloc define_insn_and_split splitter pattern. | |
7368 | (*fix_trunc<mode>_i387_1): Ditto. | |
7369 | (*fistdi2_1): Ditto. | |
7370 | (*fist<mode>2_1): Ditto. | |
7371 | (frndintxf2_floor): Ditto. | |
7372 | (*fist<mode>2_floor_1): Ditto. | |
7373 | (frndintxf2_ceil): Ditto. | |
7374 | (*fist<mode>2_ceil_1): Ditto. | |
7375 | (frndintxf2_trunc): Ditto. | |
7376 | (frndintxf2_mask_pm): Ditto. | |
7377 | ||
7378 | (prologue): Use (const_int 0) as never generated filler insn. | |
7379 | (epilogue): Ditto. | |
7380 | (sibcall_epilogue): Ditto. | |
7381 | (eh_return_si): Ditto. | |
7382 | (eh_return_di): Ditto. | |
7383 | ||
7384 | (add<mode>3): Rename from adddf3 and addsf3. Macroize expander | |
7385 | using MODEF mode iterator. | |
7386 | (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander | |
7387 | using MODEF mode iterator. | |
7388 | (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander | |
7389 | using MODEF mode iterator. | |
7390 | (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2. | |
7391 | Macroize expander using MODEF mode iterator. | |
7392 | ||
7393 | (zero_extendsidi2): Remove operand constraints from expander. | |
7394 | (smuldi3_highpart): Ditto. | |
7395 | (indirect_jump): Ditto. | |
7396 | (tablejump): Ditto. | |
7397 | (rsqrtsf2): Ditto. | |
7398 | * config/i386/sse.md (storentv4sf): Ditto. | |
7399 | (storentv2df): Ditto. | |
7400 | (storentv2di): Ditto. | |
7401 | (storentsi): Ditto. | |
7402 | (sse2_cvtpd2ps): Ditto. | |
7403 | (vec_interleave_highv16qi): Ditto. | |
7404 | (vec_interleave_lowv16qi): Ditto. | |
7405 | (vec_interleave_highv8hi): Ditto. | |
7406 | (vec_interleave_lowv8hi): Ditto. | |
7407 | (vec_interleave_highv4si): Ditto. | |
7408 | (vec_interleave_lowv4si): Ditto. | |
7409 | (vec_interleave_highv2di): Ditto. | |
7410 | (vec_interleave_lowv2di): Ditto. | |
7411 | (sse2_maskmovdqu): Ditto. | |
7412 | * config/i386/mmx.md (mmx_maskmovq): Ditto. | |
7413 | ||
7414 | 2007-09-09 Ira Rosen <irar@il.ibm.com> | |
7415 | ||
7416 | * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1. | |
7417 | (struct _slp_tree, struct _slp_instance): Define new data structures | |
7418 | along macros for their access. | |
7419 | (struct _loop_vec_info): Define new fields: strided_stores, | |
7420 | slp_instances, and slp_unrolling_factor along macros for their access. | |
7421 | (enum slp_vect_type): New. | |
7422 | (struct _stmt_vec_info): Define new field, slp_type, and macros for | |
7423 | its access. | |
7424 | (STMT_VINFO_STRIDED_ACCESS): New macro. | |
7425 | (vect_free_slp_tree): Declare. | |
7426 | (vectorizable_load): Add an argument of type slp_tree. | |
7427 | (vectorizable_store, vectorizable_operation, vectorizable_conversion, | |
7428 | vectorizable_assignment): Likewise. | |
7429 | (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): | |
7430 | Declare (make extern). | |
7431 | * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field. | |
7432 | (new_loop_vec_info): Likewise. | |
7433 | (destroy_loop_vec_info): Free memory allocated for SLP structures. | |
7434 | * tree-vect-analyze.c: Include recog.h. | |
7435 | (vect_update_slp_costs_according_to_vf): New. | |
7436 | (vect_analyze_operations): Add argument for calls to vectorizable_ () | |
7437 | functions. For not pure SLP stmts with strided access check that the | |
7438 | group size is power of 2. Update the vectorization factor according to | |
7439 | SLP. Call vect_update_slp_costs_according_to_vf. | |
7440 | (vect_analyze_group_access): New. | |
7441 | (vect_analyze_data_ref_access): Call vect_analyze_group_access. | |
7442 | (vect_free_slp_tree): New functions. | |
7443 | (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree, | |
7444 | vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp, | |
7445 | vect_make_slp_decision, vect_detect_hybrid_slp_stmts, | |
7446 | vect_detect_hybrid_slp): Likewise. | |
7447 | (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision | |
7448 | and vect_detect_hybrid_slp. | |
7449 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take | |
7450 | SLP costs into account. | |
7451 | (vect_get_cost_fields): New function. | |
7452 | (vect_model_simple_cost): Make extern, add SLP parameter and handle | |
7453 | SLP. | |
7454 | (vect_model_store_cost, vect_model_load_cost): Likewise. | |
7455 | (vect_get_constant_vectors): New function. | |
7456 | (vect_get_slp_vect_defs, vect_get_slp_defs, | |
7457 | vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy, | |
7458 | vect_get_vec_defs): Likewise. | |
7459 | (vectorizable_reduction): Don't handle SLP for now. | |
7460 | (vectorizable_call): Don't handle SLP for now. Add argument to | |
7461 | vect_model_simple_cost. | |
7462 | (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to | |
7463 | get SLPed and vectorized defs). Fix indentation and spacing. | |
7464 | (vectorizable_assignment): Handle SLP. | |
7465 | (vectorizable_induction): Don't handle SLP for now. | |
7466 | (vectorizable_operation): Likewise. | |
7467 | (vectorizable_type_demotion): Add argument to | |
7468 | vect_model_simple_cost. | |
7469 | (vectorizable_type_promotion): Likewise. | |
7470 | (vectorizable_store, vectorizable_load): Handle SLP. | |
7471 | (vectorizable_condition): Don't handle SLP for now. | |
7472 | (vect_transform_stmt): Add a new argument for SLP. Check that there is | |
7473 | no SLP transformation required for unsupported cases. Add SLP | |
7474 | argument for supported cases. | |
7475 | (vect_remove_stores): New function. | |
7476 | (vect_schedule_slp_instance, vect_schedule_slp): Likewise. | |
7477 | (vect_transform_loop): Schedule SLP instances. | |
7478 | * Makefile.in: (tree-vect-analyze.o): Depend on recog.h. | |
7479 | ||
7480 | 2007-09-09 Andrew Haley <aph@redhat.com> | |
7481 | ||
7482 | * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake | |
7483 | signed optab. | |
7484 | ||
7485 | 2007-09-09 Hans-Peter Nilsson <hp@axis.com> | |
7486 | ||
7487 | Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET. | |
7488 | * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn. | |
7489 | Similar for what label_refs can go in the JUMP_TARGET field. Split | |
7490 | REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND. | |
7491 | * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not | |
7492 | REG_LABEL when replacing an operand with a LABEL_REF for a | |
7493 | non-jump insn. | |
7494 | (subst_reloads): When replacing a LABEL_REG with a register, | |
7495 | instead of generating a REG_LABEL note, assert that there already | |
7496 | is one or that the label is a known target for the insn. | |
7497 | * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL | |
7498 | note, check the JUMP_LABEL field. Remove "else" after return. | |
7499 | * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with | |
7500 | cases for REG_LABEL_OPERAND and REG_LABEL_TARGET. | |
7501 | (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and | |
7502 | REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P | |
7503 | insns. Iterate over all notes; don't assume there's only one. | |
7504 | * cse.c (recorded_label_ref): Adjust comment to refer to | |
7505 | REG_LABEL_OPERAND. | |
7506 | (cse_extended_basic_block): Do LABEL_REF check for all INSN_P | |
7507 | insns, not just NONJUMP_INSN_P. | |
7508 | (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF | |
7509 | isn't a jump target. | |
7510 | * jump.c (rebuild_jump_labels): Adjust head comment. | |
7511 | (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only; | |
7512 | don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field. | |
7513 | (mark_all_labels): For JUMP_P insns without a target, check if the | |
7514 | the target is noted on the previous nonjump insn. | |
7515 | (mark_jump_label_1): New function, guts from mark_jump_label. | |
7516 | <case IF_THEN_ELSE>: Handle first operand as a non-target when | |
7517 | marking jump target labels. | |
7518 | <case LABEL_REF>: Adjust for whether to generate a | |
7519 | REG_LABEL_TARGET or a REG_LABEL_OPERAND note. | |
7520 | For 'E' format rtl, iterate in descending element order. | |
7521 | (delete_related_insns): Handle both REG_LABEL_TARGET and | |
7522 | REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero | |
7523 | reference count, delete and fallthrough. Move finding-next- | |
7524 | non-deleted insn last in the function. Look at all INSN_P insns | |
7525 | for REG_LABEL_OPERAND notes. | |
7526 | (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of | |
7527 | JUMP. | |
7528 | * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL | |
7529 | JUMP_LABEL, output the INSN_UID of it. | |
7530 | * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND | |
7531 | and/or REG_LABEL_TARGET. | |
7532 | (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line | |
7533 | with jump.c copy by only adding notes for labels actually | |
7534 | referenced in the insn. | |
7535 | * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need | |
7536 | usage count increment; handle all INSN_P trial insns. | |
7537 | (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND | |
7538 | notes. | |
7539 | * rtl.h (struct rtx_def) <volatil>: Adjust to mention | |
7540 | REG_LABEL_TARGET and REG_LABEL_OPERAND. | |
7541 | (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and | |
7542 | REG_LABEL_OPERAND. | |
7543 | * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on | |
7544 | JUMP_P insns and REG_LABEL_OPERAND everywhere. | |
7545 | * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS | |
7546 | on all INSN_P insns. | |
7547 | * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL. | |
7548 | * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and | |
7549 | REG_LABEL_OPERAND notes. | |
7550 | * reload1.c (calculate_needs_all_insns): Adjust comments. | |
7551 | (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes. | |
7552 | * config/alpha/alpha.md (split for load of an address into a | |
7553 | four-insn sequence on Unicos/Mk): Adjust to use | |
7554 | REG_LABEL_OPERAND. | |
7555 | * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto. | |
7556 | ||
7557 | 2007-09-09 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
7558 | ||
7559 | Revert: | |
7560 | 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
7561 | * regrename.c (copyprop_hardreg_forward_1): New variable next. Use | |
7562 | FOR_BB_INSNS_SAFE instead of for loop. | |
7563 | * cse.c (cse_extended_basic_block): Likewise. | |
7564 | * postreload.c (reload_cse_regs_1): New variable next. Make sure | |
7565 | that the for loop does not invoke NEXT_INSN on a deleted insn. | |
7566 | * function.c (instantiate_virtual_regs): Likewise. | |
7567 | * lower-subreg.c (remove_retval_note): Likewise. | |
7568 | (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of | |
7569 | FOR_BB_INSNS. | |
7570 | * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on | |
7571 | a deleted insn. | |
7572 | * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted | |
7573 | insn, if it's a jump. | |
7574 | (try_redirect_by_replacing_jump): New variable jump_p. Call | |
7575 | tablejump_p before delete_insn_chain. | |
7576 | * reload1.c (reload): New variable next. Make sure that the for | |
7577 | loop does not invoke NEXT_INSN on a deleted insn. | |
7578 | (fixup_eh_region_note): Make the loop terminate if i becomes NULL. | |
7579 | (delete_output_reload): New variable prev. Make sure the the for | |
7580 | loops do not invoke PREV_INSN on a deleted insn. | |
7581 | ||
7582 | 2007-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
7583 | ||
7584 | * pa/constraints.md: Remove 'X' from unused letters comment. | |
7585 | ||
7586 | 2007-09-08 Richard Guenther <rguenther@suse.de> | |
7587 | ||
7588 | * tree-tailcall.c (find_tail_calls): If we don't have aliases | |
7589 | computed check stmt_ann->references_memory instead of counting | |
7590 | virtual operands. | |
7591 | ||
7592 | 2007-09-08 Segher Boessenkool <segher@kernel.crashing.org> | |
7593 | ||
7594 | * cse.c (fold_rtx): Use validate_unshare_change() instead of | |
7595 | validate_change() in one more case. | |
7596 | ||
7597 | 2007-09-08 Zdenek Dvorak <ook@ucw.cz> | |
7598 | ||
7599 | PR tree-optimization/32283 | |
7600 | * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use | |
7601 | estimated_loop_iterations. | |
7602 | (determine_use_iv_cost_condition): Decrease cost of expressions | |
7603 | used in iv elimination. | |
7604 | ||
7605 | 2007-09-08 Richard Guenther <rguenther@suse.de> | |
7606 | ||
7607 | * tree-cfg.c (verify_gimple_expr): Avoid building new | |
7608 | pointer types, use TYPE_POINTER_TO if available instead. | |
7609 | ||
7610 | 2007-09-08 Uros Bizjak <ubizjak@gmail.com> | |
7611 | ||
7612 | PR target/33329 | |
7613 | PR rtl-optimization/26449 | |
7614 | * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence. | |
7615 | (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in | |
7616 | split1 pass. | |
7617 | (mulv16qi3): Implement as define_insn_and_split pattern instead of | |
7618 | define_expand. Split insn in split1 pass. | |
7619 | (mulv2di3): Ditto. | |
7620 | ||
7621 | 2007-09-08 Dorit Nuzman <dorit@il.ibm.com> | |
7622 | ||
7623 | PR tree-optimization/33301 | |
7624 | * tree-vect-analyze (analyze_operations): Look at the type of the rhs | |
7625 | when relevant. | |
7626 | ||
7627 | 2007-09-07 Zdenek Dvorak <ook@ucw.cz> | |
7628 | ||
7629 | PR tree-optimization/32183 | |
7630 | * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H). | |
7631 | ||
7632 | * tree-ssa-reassoc.c: Include cfgloop.h. | |
7633 | (is_reassociable_op): Add a loop argument and return true only | |
7634 | for inside loop. | |
7635 | (linearize_expr): Updated. | |
7636 | (should_break_up_subtract): Likewise. | |
7637 | (linearize_expr_tree): Likewise. | |
7638 | (init_reassoc): Call loop_optimizer_init with | |
7639 | AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call | |
7640 | with CDI_DOMINATORS. | |
7641 | (fini_reassoc): Call loop_optimizer_finalize. | |
7642 | ||
7643 | 2007-09-07 Sterling Augustine <sterling@tensilica.com> | |
7644 | ||
7645 | * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even | |
7646 | if there is no i-cache. | |
7647 | ||
7648 | 2007-09-07 Richard Guenther <rguenther@suse.de> | |
7649 | ||
7650 | Reapply | |
7651 | 2007-09-06 Richard Guenther <rguenther@suse.de> | |
7652 | ||
7653 | PR tree-optimization/32586 | |
7654 | * tree-ssa-sccvn.c (simplify_binary_expression): Avoid | |
7655 | folding if nothing changed. | |
7656 | (simplify_unary_expression): New function. Do tree combining | |
7657 | on conversion like codes. | |
7658 | (try_to_simplify): Call it. | |
7659 | ||
7660 | 2007-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
7661 | ||
7662 | PR target/33286 | |
7663 | * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux. | |
7664 | (__gthread_active,__gthread_start, __gthread_active_init): New. | |
7665 | * gthr-posix95.h: Likewise. | |
7666 | ||
7667 | 2007-09-07 Roman Zippel <zippel@linux-m68k.org> | |
7668 | ||
7669 | * function.h (struct function): Rename calls_unwind_init | |
7670 | to saves_all_registers. | |
7671 | (current_function_saves_all_registers): Renamed from | |
7672 | current_function_calls_unwind_init. | |
7673 | * reload1.c (reload): Set current_function_saves_all_registers. | |
7674 | * except.c (expand_builtin_unwind_init): Likewise. | |
7675 | * config/m68k/m68k.c (m68k_save_reg): Use | |
7676 | current_function_saves_all_registers to save pic register. | |
7677 | ||
7678 | 2007-09-07 Janis Johnson <janis187@us.ibm.com> | |
7679 | ||
7680 | config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN. | |
7681 | config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto. | |
7682 | ||
7683 | Reapply reverted changes: | |
7684 | ||
7685 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
7686 | ||
7687 | * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call | |
7688 | of real_2expN. | |
7689 | ||
7690 | 2007-09-06 Richard Sandiford <richard@codesourcery.com> | |
7691 | ||
7692 | * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) | |
7693 | (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. | |
7694 | ||
7695 | 2007-09-05 Janis Johnson <janis187@us.ibm.com> | |
7696 | ||
7697 | * optabs.c (expand_float): Convert unsigned integer as signed only | |
7698 | if it provides sufficient accuracy; add mode argument to real_2expN. | |
7699 | (expand_fix): Fix comment typos; extend binary float into mode | |
7700 | wider than destination for converion to unsigned integer; add mode | |
7701 | argument to real_2expN. | |
7702 | * real.c (real_2expN): Add mode argument to special-case decimal | |
7703 | float values. | |
7704 | * real.h (real_2expN): Ditto. | |
7705 | * fixed-value.c (check_real_for_fixed_mode): Add mode argument to | |
7706 | real_2expN. | |
7707 | (fixed_from_string): Ditto. | |
7708 | (fixed_to_decimal): Ditto. | |
7709 | (fixed_convert_from_real): Ditto. | |
7710 | (real_convert_from_fixed): Ditto. | |
7711 | * config/rs6000/rs6000.md (FP): Include DD and TD modes. | |
7712 | * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, | |
7713 | muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, | |
7714 | floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. | |
7715 | ||
7716 | 2007-09-07 Diego Novillo <dnovillo@google.com> | |
7717 | ||
7718 | * tree-flow.h (const_block_stmt_iterator): Remove. | |
7719 | Update all users to use block_stmt_iterator. | |
7720 | * tree-iterator.h (const_tree_stmt_iterator): Remove. | |
7721 | Update all users to use tree_stmt_iterator. | |
7722 | ||
7723 | 2007-09-07 Sandra Loosemore <sandra@codesourcery.com> | |
7724 | ||
7725 | * config/mips/mips.c (mips_set_current_function): Temporarily | |
7726 | make this a no-op to fix bootstrap errors, pending rewrite. | |
7727 | ||
7728 | 2007-09-07 Jan Hubicka <jh@suse.cz> | |
7729 | ||
7730 | * reorg.c (dbr_schedule): Move code removing placeholder USEs later | |
7731 | in the pass. | |
7732 | ||
7733 | 2007-09-07 Dorit Nuzman <dorit@il.ibm.com> | |
7734 | ||
7735 | PR tree-optimization/33299 | |
7736 | * tree-vect-transform.c (vect_create_epilog_for_reduction): Update | |
7737 | uses for all relevant loop-exit phis, not just the first. | |
7738 | ||
7739 | 2007-09-07 Richard Guenther <rguenther@suse.de> | |
7740 | ||
7741 | PR middle-end/33330 | |
7742 | * tree-ssa-operands.c (access_can_touch_variable): An access | |
7743 | of the form (*p)[0] can touch a variable of same size. | |
7744 | ||
7745 | 2007-09-07 Jan Hubicka <jh@suse.cz> | |
7746 | ||
7747 | * passes.c (init_optimization_passes): Add simple dce and addressable | |
7748 | passes. | |
7749 | * tree-ssa.c (execute_update_addresses_taken): New function. | |
7750 | (pass_update_address_taken): New. | |
7751 | * tree-ssa-dse.c (execute_simple_dse): New function. | |
7752 | (pass_simple_dse): New. | |
7753 | * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare. | |
7754 | ||
7755 | 2007-09-07 Tobias Burnus <burnus@net-b.de> | |
7756 | ||
7757 | PR middle-end/33321 | |
7758 | * doc/invoke.texi: Fix -Wstrict-overflow= table. | |
7759 | ||
7760 | 2007-09-07 Richard Guenther <rguenther@suse.de> | |
7761 | ||
7762 | Revert | |
7763 | 2007-09-06 Richard Guenther <rguenther@suse.de> | |
7764 | ||
7765 | PR tree-optimization/32586 | |
7766 | * tree-ssa-sccvn.c (simplify_binary_expression): Avoid | |
7767 | folding if nothing changed. | |
7768 | (simplify_unary_expression): New function. Do tree combining | |
7769 | on conversion like codes. | |
7770 | (try_to_simplify): Call it. | |
7771 | ||
7772 | 2007-09-07 Richard Guenther <rguenther@suse.de> | |
7773 | Uros Bizjak <ubizjak@gmail.com> | |
7774 | ||
7775 | PR tree-optimization/32821 | |
7776 | * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of | |
7777 | NULL in the call to set_bb_stmt_list. | |
7778 | ||
7779 | 2007-09-07 Richard Sandiford <richard@codesourcery.com> | |
7780 | ||
7781 | * config/mips/mips.c (build_mips16_call_stub): Emit all direct | |
7782 | float calls here, rather than leaving some to the caller. | |
7783 | Use call_internal_direct and call_value_internal_direct. | |
7784 | * config/mips/mips.md (call_internal_direct): New pattern. | |
7785 | (call_value_internal_direct): Likewise. | |
7786 | ||
7787 | 2007-09-07 Richard Sandiford <richard@codesourcery.com> | |
7788 | ||
7789 | * config/mips/mips.c (mips_base_move_loop_invariants): New variable. | |
7790 | (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set | |
7791 | to 0 for MIPS16. | |
7792 | (override_options): Set mips_base_move_loop_invariants. | |
7793 | ||
7794 | 2007-09-07 Richard Sandiford <richard@codesourcery.com> | |
7795 | ||
7796 | * config/mips/mips.opt (mcode-readable=): Move to keep list | |
7797 | alphabetical. | |
7798 | ||
7799 | 2007-09-07 Richard Sandiford <richard@codesourcery.com> | |
7800 | ||
7801 | * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata | |
7802 | and -mgpopt options. Adjust the -G documentation to match. | |
7803 | * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New. | |
7804 | * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New | |
7805 | function, split out from mips_classify_symbol. Return false for | |
7806 | !TARGET_LOCAL_SDATA. | |
7807 | (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p. | |
7808 | Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT. | |
7809 | (override_options): Check whether the -mgpopt setting is consistent | |
7810 | with the other flags. | |
7811 | (symbolic_expression_p): Delete. | |
7812 | (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p | |
7813 | and default_elf_select_rtx_section. | |
7814 | (mips_in_small_data_p): Honor section attributes for MIPS16 too. | |
7815 | Return false for local data unless TARGET_LOCAL_SDATA. Likewise | |
7816 | external data and TARGET_EXTERN_SDATA. | |
7817 | ||
7818 | 2007-09-07 Tobias Burnus <burnus@net-b.de> | |
7819 | ||
7820 | PR fortran/33303 | |
7821 | * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__. | |
7822 | ||
7823 | 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
7824 | ||
7825 | * regrename.c (copyprop_hardreg_forward_1): New variable next. Use | |
7826 | FOR_BB_INSNS_SAFE instead of for loop. | |
7827 | * cse.c (cse_extended_basic_block): Likewise. | |
7828 | * postreload.c (reload_cse_regs_1): New variable next. Make sure | |
7829 | that the for loop does not invoke NEXT_INSN on a deleted insn. | |
7830 | * function.c (instantiate_virtual_regs): Likewise. | |
7831 | * lower-subreg.c (remove_retval_note): Likewise. | |
7832 | (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of | |
7833 | FOR_BB_INSNS. | |
7834 | * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on | |
7835 | a deleted insn. | |
7836 | * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted | |
7837 | insn, if it's a jump. | |
7838 | (try_redirect_by_replacing_jump): New variable jump_p. Call | |
7839 | tablejump_p before delete_insn_chain. | |
7840 | * reload1.c (reload): New variable next. Make sure that the for | |
7841 | loop does not invoke NEXT_INSN on a deleted insn. | |
7842 | (fixup_eh_region_note): Make the loop terminate if i becomes NULL. | |
7843 | (delete_output_reload): New variable prev. Make sure the the for | |
7844 | loops do not invoke PREV_INSN on a deleted insn. | |
7845 | ||
7846 | 2007-09-06 Zdenek Dvorak <ook@ucw.cz> | |
7847 | ||
7848 | * cgraphbuild.c (rebuild_cgraph_edges): Export. | |
7849 | * cgraph.h (rebuild_cgraph_edges): Declare. | |
7850 | * tree-pass.h (pass_expand_omp_ssa): New. | |
7851 | * omp-low.c (find_omp_clause): Export. | |
7852 | (copy_var_decl): Split from omp_copy_decl_2. | |
7853 | (build_omp_barrier): Return the call to emit instead of emitting | |
7854 | it directly. | |
7855 | (lower_rec_input_clauses, expand_omp_single): Gimplify the result of | |
7856 | build_omp_barrier. | |
7857 | (extract_omp_for_data, expand_parallel_call, expand_omp_parallel, | |
7858 | expand_omp_for_generic, expand_omp_for_static_nochunk, | |
7859 | expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): | |
7860 | Adapted to work on SSA form. | |
7861 | (execute_expand_omp): Do not invalidate dominance information. | |
7862 | (gate_expand_omp): Do not run with -fopenmp-ssa flag. | |
7863 | (gate_expand_omp_ssa, pass_expand_omp_ssa): New. | |
7864 | * gimplify.c (gimplify_omp_for): Ensure that the control variable is | |
7865 | a gimple_reg. | |
7866 | (force_gimple_operand): Allow gimplifying code expressions without | |
7867 | value. | |
7868 | * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes. | |
7869 | * common.opt (fopenmp-ssa): New. | |
7870 | * tree-flow.h (find_omp_clause, copy_var_decl): Declare. | |
7871 | * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency. | |
7872 | * tree-cfg.c: Include tree-inline.h. | |
7873 | (struct move_stmt_d): Replace vars_to_remove by vars_map field. | |
7874 | (replace_by_duplicate_decl, replace_ssa_name, | |
7875 | mark_virtual_ops_in_region): New functions. | |
7876 | (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted | |
7877 | to work on SSA form. | |
7878 | * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass. | |
7879 | * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP | |
7880 | constructs. | |
7881 | ||
7882 | 2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
7883 | ||
7884 | * tree-loop-linear.c: Include obstack.h. | |
7885 | (linear_transform_loops): New obstack lambda_obstack. | |
7886 | Initialize it, pass it to gcc_loopnest_to_lambda_loopnest, | |
7887 | lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls | |
7888 | and free afterwards. | |
7889 | * lambda.h (struct obstack): New forward declaration. | |
7890 | (lambda_linear_expression_new): New parameter of type struct | |
7891 | obstack *. | |
7892 | (lambda_loopnest_new): Likewise. | |
7893 | (lambda_loopnest_transform): Likewise. | |
7894 | (lambda_body_vector_new): Likewise. | |
7895 | (lambda_body_vector_compute_new): Likewise. | |
7896 | (gcc_loopnest_to_lambda_loopnest): Likewise. | |
7897 | (lambda_loopnest_to_gcc_loopnest): Likewise. | |
7898 | * lambda-code.c: Include obstack.h. | |
7899 | (lambda_lattice_new): New parameter lambda_obstack. Use it for | |
7900 | allocation of ret. | |
7901 | (lambda_body_vector_new): Likewise. | |
7902 | (lambda_linear_expression_new): Likewise. | |
7903 | (lambda_lattice_new): Likewise. | |
7904 | (lambda_loopnest_new): Likewise. Additionally use obstack to | |
7905 | allocate LN_LOOPS(ret). | |
7906 | (lambda_lattice_compute_base): New parameter lambda_obstack. Pass | |
7907 | it to lambda_lattice_new. | |
7908 | (lambda_body_vector_compute_new): New parameter lambda_obstack. | |
7909 | Pass it to lambda_body_vector_new. | |
7910 | (lambda_lattice_compute_base): New paramater lambda_obstack. Pass | |
7911 | it to lambda_lattice_new. | |
7912 | (compute_nest_using_fourier_motzkin): New parameter lambda_obstack. | |
7913 | Pass it to lambda_loopnest_new, lambda_linear_expression_new. | |
7914 | (lambda_compute_target_space): Likewise. | |
7915 | (lambda_compute_auxillary_space): New parameter lambda_obstack. | |
7916 | Pass it to lambda_lattice_compute_base and | |
7917 | compute_nest_using_fourieer_motzkin. | |
7918 | (lambda_loopnest_transform): New parameter lambda_obstack. Pass | |
7919 | it to lambda_lattice_compute_base, lambda_lattice_auxillary_space | |
7920 | and lambda_lattice_compute_target_space. | |
7921 | (gcc_tree_to_linear_expression): Nex parameter lambda_obstack. | |
7922 | Pass it to lambda_linear_expression_new. | |
7923 | (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it | |
7924 | to gcc_tree_to_linear_expression. | |
7925 | (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack. | |
7926 | Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new. | |
7927 | (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack. | |
7928 | Pass it to lambda_body_vector_new and | |
7929 | lambda_body_vector_compute_new. | |
7930 | * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency. | |
7931 | (lambda-code.o): Likewise. | |
7932 | ||
7933 | 2007-09-06 Chao-ying Fu <fu@mips.com> | |
7934 | ||
7935 | * ginclude/stdfix.h: New file. | |
7936 | * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h. | |
7937 | (convert.o): Add dependence on fixed-value.h. | |
7938 | * c-convert.c (convert): Support FIXED_POINT_TYPE. | |
7939 | * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function | |
7940 | to define fixed-point constants. | |
7941 | (c_cpp_builtins): Define fixed-point constants. | |
7942 | * convert.c (fixed-value.h): New include. | |
7943 | (convert_to_real): Update comment to include fixed-point. | |
7944 | Support FIXED_POINT_TYPE. | |
7945 | (convert_to_integer): Update comment to include fixed-point. | |
7946 | Support FIXED_POINT_TYPE. | |
7947 | (convert_to_complex): Support FIXED_POINT_TYPE. | |
7948 | (convert_to_fixed): New function. | |
7949 | * convert.h (convert_to_fixed): Declare. | |
7950 | * genopinit.c: Add comment about $Q for only fixed-point modes. | |
7951 | (optabs): Add fract_optab, fractuns_optab, satfract_optab, | |
7952 | satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab, | |
7953 | sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab, | |
7954 | ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab, | |
7955 | usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab, | |
7956 | usneg_optab for fixed-point modes. | |
7957 | (gen_insn): Add force_fixed to track the $Q format for all fixed-point | |
7958 | modes. | |
7959 | * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR, | |
7960 | PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or | |
7961 | unsigned saturation optabs, when type is saturating. | |
7962 | (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT. | |
7963 | (expand_fixed_convert): New function. | |
7964 | (gen_fixed_libfunc, gen_signed_fixed_libfunc, | |
7965 | gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc, | |
7966 | gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc, | |
7967 | gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc, | |
7968 | gen_fract_conv_libfunc, gen_fractuns_conv_libfunc, | |
7969 | gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New | |
7970 | functions. | |
7971 | (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab, | |
7972 | ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, | |
7973 | usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab, | |
7974 | ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab, | |
7975 | usneg_optab, fract_optab, fractuns_optab, satfract_optab, | |
7976 | satfractuns_optab. | |
7977 | Initialize fixed-point libraries, including add, ssadd, usadd, sub, | |
7978 | sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl, | |
7979 | ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract, | |
7980 | fractuns, satfractuns. | |
7981 | * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub, | |
7982 | OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg, | |
7983 | OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen, | |
7984 | OTI_ssmsub_widen, OTI_usmsub_widen. | |
7985 | (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, | |
7986 | usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, | |
7987 | ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab, | |
7988 | umsub_widen_optab, usmsub_widen_optab): Define. | |
7989 | (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract, | |
7990 | COI_satfractuns. | |
7991 | (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab): | |
7992 | Define. | |
7993 | (expand_fixed_convert): Declare. | |
7994 | * expr.c (convert_move): Support the move of fixed-point modes. | |
7995 | (emit_move_insn_1): Handle fixed-point mode to move via integer. | |
7996 | (categorize_ctor_elements_1): Handle FIXED_CST. | |
7997 | (count_type_elements): Handle FIXED_POINT_TYPE. | |
7998 | (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT, | |
7999 | MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
8000 | Support FIXED_CST. | |
8001 | For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating | |
8002 | multiply and add/subtract for fixed-point types. | |
8003 | For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point | |
8004 | mode, we jump to binop directly. | |
8005 | Support FIXED_CONVERT_EXPR. | |
8006 | (do_store_flag): Check FIXED_CST to put a constant second. | |
8007 | (vector_mode_valid_p): Handle MODE_VECTOR_FRACT, | |
8008 | MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
8009 | (const_vector_from_tree): Support FIXED_CST. | |
8010 | * doc/extend.texi (Fixed-Point): New node. | |
8011 | * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv, | |
8012 | ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract, | |
8013 | satfract, fractuns, satfractuns): Document them. | |
8014 | ||
8015 | 2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com> | |
8016 | ||
8017 | * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc | |
8018 | addresses into I registers. | |
8019 | ||
8020 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
8021 | Andreas Tobler <a.tobler@schweiz.org> | |
8022 | ||
8023 | * config/darwin.c (machopic_indirect_data_reference): Avoid invalid | |
8024 | sharing. | |
8025 | (machopic_legitimize_pic_address): Likewise. | |
8026 | ||
8027 | 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
8028 | Jan Hubicka <jh@suse.cz> | |
8029 | ||
8030 | * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc | |
8031 | instead of ufloat_optab->handlers directly. | |
8032 | (floatdidf2): Likewise. | |
8033 | ||
8034 | 2007-09-06 Sandra Loosemore <sandra@codesourcery.com> | |
8035 | ||
8036 | * config/mips/mips.c: Include diagnostic.h. | |
8037 | (mips_set_current_function): Check errorcount and sorrycount | |
8038 | before generating RTL. | |
8039 | ||
8040 | 2007-09-06 Richard Sandiford <richard@codesourcery.com> | |
8041 | ||
8042 | PR target/33256 | |
8043 | * config/mips/mips.c (mips_classify_symbolic_expression): New function. | |
8044 | (mips_classify_address): Use it instead of mips_symbolic_constant_p. | |
8045 | (print_operand_reloc): Likewise. | |
8046 | ||
8047 | 2007-09-06 Janis Johnson <janis187@us.ibm.com> | |
8048 | ||
8049 | Revert: | |
8050 | ||
8051 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
8052 | ||
8053 | * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): | |
8054 | Update call of real_2expN. | |
8055 | ||
8056 | 2007-09-06 Richard Sandiford <richard@codesourcery.com> | |
8057 | ||
8058 | * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) | |
8059 | (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. | |
8060 | ||
8061 | 2007-09-05 Janis Johnson <janis187@us.ibm.com> | |
8062 | ||
8063 | * optabs.c (expand_float): Convert unsigned integer as signed only | |
8064 | if it provides sufficient accuracy; add mode argument to real_2expN. | |
8065 | (expand_fix): Fix comment typos; extend binary float into mode | |
8066 | wider than destination for converion to unsigned integer; add mode | |
8067 | argument to real_2expN. | |
8068 | * real.c (real_2expN): Add mode argument to special-case decimal | |
8069 | float values. | |
8070 | * real.h (real_2expN): Ditto. | |
8071 | * fixed-value.c (check_real_for_fixed_mode): Add mode argument to | |
8072 | real_2expN. | |
8073 | (fixed_from_string): Ditto. | |
8074 | (fixed_to_decimal): Ditto. | |
8075 | (fixed_convert_from_real): Ditto. | |
8076 | (real_convert_from_fixed): Ditto. | |
8077 | * config/rs6000/rs6000.md (FP): Include DD and TD modes. | |
8078 | * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, | |
8079 | muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, | |
8080 | floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. | |
8081 | ||
8082 | 2007-09-06 Tom Tromey <tromey@redhat.com> | |
8083 | ||
8084 | * tree-cfg.c (remove_bb): Only warn if line is non-zero. | |
8085 | * c-pch.c (c_common_read_pch): Restore current location after | |
8086 | reading PCH file. | |
8087 | * tree.c (expand_location): Update. | |
8088 | (expr_filename): Changed return type. Unified the two cases. | |
8089 | (expr_lineno): Likewise. | |
8090 | (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME | |
8091 | as lvalues. | |
8092 | * toplev.c (line_table): Changed type. | |
8093 | (general_init): Update. | |
8094 | (realloc_for_line_map): New function. | |
8095 | (general_init): Allocate line_table using GC. | |
8096 | * fix-header.c (line_table): Changed type. | |
8097 | (read_scan_file): Update. | |
8098 | (read_scan_file): Update. | |
8099 | * c-ppoutput.c (maybe_print_line): Update. | |
8100 | (print_line): Update. | |
8101 | (cb_line_change): Update. | |
8102 | (cb_define): Update. | |
8103 | (pp_file_change): Update. | |
8104 | * c-opts.c (c_common_init_options): Update. | |
8105 | (finish_options): Update. | |
8106 | (push_command_line_include): Update. | |
8107 | * c-lex.c (cb_line_change): Update. | |
8108 | (cb_def_pragma): Update. | |
8109 | (cb_define): Update. | |
8110 | (cb_undef): Update. | |
8111 | (c_lex_with_flags): Use cpp_get_token_with_location. | |
8112 | * input.h (line_table): Changed type. | |
8113 | (location_from_locus): New macro. | |
8114 | * tree.h (EXPR_FILENAME): No longer an lvalue. | |
8115 | (EXPR_LINENO): Likewise. | |
8116 | (expr_locus, set_expr_locus): Declare separately for | |
8117 | USE_MAPPED_LOCATION. | |
8118 | (expr_filename, expr_lineno): Changed return type. | |
8119 | * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS. | |
8120 | * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus. | |
8121 | (expand_gimple_basic_block): Likewise. | |
8122 | * final.c (final_scan_insn): Use expanded_location. | |
8123 | ||
8124 | 2007-09-06 Richard Guenther <rguenther@suse.de> | |
8125 | ||
8126 | PR tree-optimization/32586 | |
8127 | * tree-ssa-sccvn.c (simplify_binary_expression): Avoid | |
8128 | folding if nothing changed. | |
8129 | (simplify_unary_expression): New function. Do tree combining | |
8130 | on conversion like codes. | |
8131 | (try_to_simplify): Call it. | |
8132 | * builtins.c (fold_builtin_cexp): Fold the built expressions. | |
8133 | * fold-const.c (fold_unary): Test result of get_callee_fndecl(). | |
8134 | ||
8135 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
8136 | ||
8137 | PR target/33318 | |
8138 | * cse.c (fold_rtx): Avoid invalid sharing. | |
8139 | ||
8140 | 2007-09-06 Richard Sandiford <richard@codesourcery.com> | |
8141 | ||
8142 | * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) | |
8143 | (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. | |
8144 | ||
8145 | 2007-09-06 Revital Eres <eres@il.ibm.com> | |
8146 | ||
8147 | * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): | |
8148 | Fix offsettable memory reference for 750CL. | |
8149 | ||
8150 | 2007-09-06 Pat Haugen <pthaugen@us.ibm.com> | |
8151 | ||
8152 | * reload.c (find_reloads_address_1): Try to preserve original | |
8153 | base/index regclass of operands. | |
8154 | * regrename.c (scan_rtx_address): Likewise. | |
8155 | (replace_oldest_value_addr): Likewise. | |
8156 | ||
8157 | 2007-09-06 Richard Guenther <rguenther@suse.de> | |
8158 | ||
8159 | PR tree-optimization/33302 | |
8160 | * domwalk.c (walk_dominator_tree): The exit block is | |
8161 | interesting even if it is not reachable. | |
8162 | ||
8163 | 2007-09-06 Richard Sandiford <richard@codesourcery.com> | |
8164 | ||
8165 | PR middle-end/33306 | |
8166 | * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode. | |
8167 | ||
8168 | 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net> | |
8169 | ||
8170 | * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for | |
8171 | robustness. | |
8172 | ||
8173 | 2007-09-05 Ian Lance Taylor <iant@google.com> | |
8174 | ||
8175 | * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int | |
8176 | when printing. | |
8177 | (dump_generic_node): Likewise. | |
8178 | * print-rtl.c (print_decl_name): Likewise. | |
8179 | * print-tree.c (print_node_brief): Likewise. | |
8180 | (print_node): Likewise. | |
8181 | * Makefile.in (RTL_BASE_H): Add alias.h. | |
8182 | (TREE_H): Likewise. | |
8183 | ||
8184 | 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com> | |
8185 | ||
8186 | * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros): | |
8187 | Defined. | |
8188 | * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented. | |
8189 | * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined. | |
8190 | ||
8191 | 2007-09-06 Jie Zhang <jie.zhang@analog.com> | |
8192 | ||
8193 | * config.gcc (tm_file): Add linux.h for bfin*-uclinux*. | |
8194 | (tm_defines): Define UCLIBC_DEFAULT to 1. | |
8195 | (extra_options): Add linux.opt. | |
8196 | * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define. | |
8197 | (CRT_CALL_STATIC_FUNCTION): Likewise. | |
8198 | (NO_IMPLICIT_EXTERN_C): Likewise. | |
8199 | (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. | |
8200 | * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define. | |
8201 | * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define. | |
8202 | (ENDFILE_SPEC): Don't define. | |
8203 | (LIB_SPEC): Likewise. | |
8204 | (CRT_CALL_STATIC_FUNCTION): Likewise. | |
8205 | (NO_IMPLICIT_EXTERN_C): Likewise. | |
8206 | (LINUX_TARGET_OS_CPP_BUILTINS): Likewise. | |
8207 | (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. | |
8208 | ||
8209 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
8210 | ||
8211 | * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): | |
8212 | Update call of real_2expN. | |
8213 | ||
8214 | 2007-09-06 Jan Hubicka <jh@suse.cz> | |
8215 | ||
8216 | * opts.c (common_handle_option): Enable inlining functions for | |
8217 | -fprofile-generate. | |
8218 | ||
8219 | 2007-09-06 Jakub Jelinek <jakub@redhat.com> | |
8220 | ||
8221 | * builtin-attrs.def (ATTR_NONNULL_3): New. | |
8222 | (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of | |
8223 | ATTR_NOTHROW_NONNULL_##FA. | |
8224 | (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros. | |
8225 | (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3, | |
8226 | ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4, | |
8227 | ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5, | |
8228 | ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6, | |
8229 | ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3, | |
8230 | ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4): | |
8231 | New. | |
8232 | (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0, | |
8233 | ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0, | |
8234 | ATTR_FORMAT_NOTHROW_3_4): Remove. | |
8235 | * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf, | |
8236 | vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk, | |
8237 | __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_* | |
8238 | instead of ATTR_FORMAT_*_*. | |
8239 | ||
8240 | 2007-09-06 Hans-Peter Nilsson <hp@axis.com> | |
8241 | ||
8242 | * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on | |
8243 | parts re-used for REG_FRAME_RELATED_EXPR. | |
8244 | ||
8245 | 2007-09-05 Janis Johnson <janis187@us.ibm.com> | |
8246 | ||
8247 | * optabs.c (expand_float): Convert unsigned integer as signed only | |
8248 | if it provides sufficient accuracy; add mode argument to real_2expN. | |
8249 | (expand_fix): Fix comment typos; extend binary float into mode | |
8250 | wider than destination for converion to unsigned integer; add mode | |
8251 | argument to real_2expN. | |
8252 | * real.c (real_2expN): Add mode argument to special-case decimal | |
8253 | float values. | |
8254 | * real.h (real_2expN): Ditto. | |
8255 | * fixed-value.c (check_real_for_fixed_mode): Add mode argument to | |
8256 | real_2expN. | |
8257 | (fixed_from_string): Ditto. | |
8258 | (fixed_to_decimal): Ditto. | |
8259 | (fixed_convert_from_real): Ditto. | |
8260 | (real_convert_from_fixed): Ditto. | |
8261 | * config/rs6000/rs6000.md (FP): Include DD and TD modes. | |
8262 | * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, | |
8263 | muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, | |
8264 | floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. | |
8265 | ||
8266 | 2007-09-05 Ian Lance Taylor <iant@google.com> | |
8267 | ||
8268 | * init-regs.c (initialize_uninitialized_regs): Call | |
8269 | emit_insn_before rather than add_insn_before. | |
8270 | ||
8271 | 2007-09-05 Jakub Jelinek <jakub@redhat.com> | |
8272 | ||
8273 | * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in. | |
8274 | * tree.h (CALL_EXPR_VA_ARG_PACK): Define. | |
8275 | * tree-inline.h (copy_body_data): Add call_expr field. | |
8276 | * tree-inline.c (expand_call_inline): Initialize call_expr. | |
8277 | (copy_bb): Append anonymous inline fn arguments to arguments | |
8278 | when inlining a CALL_EXPR_VA_ARG_PACK call. | |
8279 | * builtins.c (expand_builtin): Issue an error if | |
8280 | BUILT_IN_VA_ARG_PACK is seen during expand. | |
8281 | (fold_call_expr, fold_builtin_call_array): Don't fold | |
8282 | CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with | |
8283 | __builtin_va_arg_pack () call as last argument. | |
8284 | * gimplify.c (gimplify_call_expr): If last argument to a vararg | |
8285 | function is __builtin_va_arg_pack (), decrease number of call | |
8286 | arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR. | |
8287 | * expr.c (expand_expr_real_1): Issue an error if | |
8288 | CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand. | |
8289 | * tree-pretty-print.c (dump_generic_node): Handle printing | |
8290 | CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs. | |
8291 | * doc/extend.texi (__builtin_va_arg_pack): Document. | |
8292 | ||
8293 | 2007-09-05 Adam Nemet <anemet@caviumnetworks.com> | |
8294 | ||
8295 | PR tree-optimization/21513 | |
8296 | * builtins.c (build_builtin_expect_predicate): New function. | |
8297 | (fold_builtin_expect): Add argument for expected value. | |
8298 | Distribute __builtin_expect over short-circuiting operations. | |
8299 | Fold nested builtin_expects. | |
8300 | (fold_builtin_2): Adjust call to fold_builtin_expect. | |
8301 | ||
8302 | 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
8303 | ||
8304 | PR web/32965 | |
8305 | PR tree-optimization/13756 | |
8306 | * doc/invoke.texi (Options That Control Optimization): Document | |
8307 | -ftree-dse. | |
8308 | ||
8309 | 2007-09-05 Uros Bizjak <ubizjak@gmail.com> | |
8310 | ||
8311 | * config/i386/cpuid.h: New file. | |
8312 | * config/i386/driver-i386.c: Include cpuid.h. | |
8313 | (describe_cache): Shrink size and line strings to 100 bytes. | |
8314 | (detect_caches_amd): Return "" for unsupported max_ext_level. | |
8315 | Use __cpuid function. | |
8316 | (detect_caches_intel): Return "" for unsupported max_level. | |
8317 | Use __cpuid function. | |
8318 | (host_detect_local_cpu): Change feature flag variables to | |
8319 | unsigned int. Initialize only extended feature flag variables. | |
8320 | Use __get_cpuid_max to determine max supported cpuid level. | |
8321 | Use __cpuid function to determine supported features. Fix | |
8322 | calculation of family id. Remove is_amd and check signature | |
8323 | directly. Check for Geode signature. Handle family 4 id. | |
8324 | [PROCESSOR_GENERIC32]: New default for unknown family id. Move | |
8325 | cpu discovery code to lower part of the function. | |
8326 | [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune | |
8327 | for sub-architecture. | |
8328 | [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code. | |
8329 | [PROCESSOR_K8]: Add k8-sse3 architecture. | |
8330 | [PROCESSOR_NOCONA]: Remove. | |
8331 | [PROCESSOR_GENERIC64]: Ditto. | |
8332 | * config/i386/x-i386 (driver-i386.o): Depend on cpuid.h. | |
8333 | * config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid | |
8334 | to check for SSE and FXSAVE support. | |
8335 | * config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h. | |
8336 | Add -minline-all-stringops. | |
8337 | * config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers. | |
8338 | (x86_64-*-*): Ditto. | |
8339 | ||
8340 | 2007-09-05 Jie Zhang <jie.zhang@analog.com> | |
8341 | ||
8342 | * config/bfin/linux-unwind.h: New file. | |
8343 | * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define. | |
8344 | * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define. | |
8345 | ||
8346 | 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
8347 | ||
8348 | * Makefile.in (stmt.o): Add alloc-pool.h dependency. | |
8349 | * stmt.c: Include alloc-pool.h. | |
8350 | (struct case_node): Remove GTY marker. | |
8351 | (add_case_node): New parameter case_node_pool. Use it for | |
8352 | allocation of r. | |
8353 | (expand_case): New allocation pool case_node_pool. Initialize it, | |
8354 | pass to add_case_node and free it. | |
8355 | ||
8356 | 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> | |
8357 | David Ung <davidu@mips.com> | |
8358 | Nigel Stephens <nigel@mips.com> | |
8359 | ||
8360 | Add mips16/nomips16 function attributes and -mflip-mips16 option | |
8361 | for testing mixed-mode compilation. | |
8362 | ||
8363 | * config/mips/mips.opt (mflip-mips16): New. | |
8364 | ||
8365 | * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define. | |
8366 | (SYMBOL_FLAG_MIPS16_FUNC_P): Define. | |
8367 | ||
8368 | * config/mips/mips.c (mips_base_target_flags): New. | |
8369 | (mips_base_mips16): New. | |
8370 | (mips_base_schedule_insns): New. | |
8371 | (mips_base_reorder_blocks_and_partition): New. | |
8372 | (mips_base_align_loops): New. | |
8373 | (mips_base_align_jumps): New. | |
8374 | (mips_base_align_functions): New. | |
8375 | (mips16_flipper): New. | |
8376 | (mips_attribute_table): Add "mips16" and "nomips16" entries. | |
8377 | (TARGET_SET_CURRENT_FUNCTION): Define. | |
8378 | (mips_mips16_type_p, mips_nomips16_type_p): New. | |
8379 | (mips_comp_type_attributes): Check mips16/nomips16 attributes. | |
8380 | (mips_function_ok_for_sibcall): Make it deal with functions with | |
8381 | mips16 attributes. | |
8382 | (mips_init_split_addresses): New, split out from override_options. | |
8383 | (mips_init_relocs): New, split out from override_options. | |
8384 | (was_mips16_p): New. | |
8385 | (mips_set_mips16_mode): New, split out from override_options. | |
8386 | (mips_set_current_function): New. | |
8387 | (override_options): Add sorry for unsupported mips16/pic | |
8388 | combination. Remove error for mips16/dsp combination. Save | |
8389 | base option settings. | |
8390 | (mips_file_start): Move mips16 mode setting output from here.... | |
8391 | (mips_output_function_prologue): ....to here. | |
8392 | (mips_output_mi_thunk): Check for mips16 function. | |
8393 | (build_mips16_function_stub): Don't set .mips16 here. | |
8394 | (build_mips16_call_stub): Likewise. | |
8395 | (mips_expand_builtin): Error in mips16 mode. | |
8396 | (mips_use_mips16_mode_p): New. | |
8397 | (mips_encode_section_info): Check for mips16 function, and set | |
8398 | SYMBOL_REF_FLAGS accordingly. | |
8399 | ||
8400 | * doc/extend.texi (Function Attributes): Document new | |
8401 | mips16/nomips16 attributes. | |
8402 | * doc/invoke.texi (Option Summary): Add -mflip-mips16. | |
8403 | (MIPS Options): Document -mflip-mips16. | |
8404 | ||
8405 | 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> | |
8406 | ||
8407 | * config/mips/mips.c (mips_legitimize_tls_address): Call sorry | |
8408 | if we encounter TLS address in MIPS16 mode. | |
8409 | (mips_legitimize_const_move): Check cannot_force_const_mem for | |
8410 | the (const (plus symbol offset)) case; this forces invalid TLS | |
8411 | address in MIPS16 mode to be caught by the above call to sorry. | |
8412 | (override_options): Don't reset targetm.have_tls in MIPS16 mode, | |
8413 | because that now enables emutls, which is not ABI compatible | |
8414 | with native TLS in non-MIPS16 mode. | |
8415 | ||
8416 | 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> | |
8417 | ||
8418 | Add target hook invoked when cfun changes. | |
8419 | ||
8420 | * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document. | |
8421 | * target.h (struct gcc_target): Add set_current_function. | |
8422 | * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define. | |
8423 | (TARGET_INITIALIZER): Add initializer for set_current_function. | |
8424 | * tree.h (push_struct_function): New. | |
8425 | * tree-inline.h (push_cfun, pop_cfun): Move declarations to... | |
8426 | * function.h: Here. | |
8427 | (set_cfun): Declare. | |
8428 | * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to... | |
8429 | * function.c: Here. | |
8430 | (push_function_context_to): Use allocate_struct_function | |
8431 | to create null context, not init_dummy_function_start. Use set_cfun. | |
8432 | (pop_function_context_from): Use set_cfun. | |
8433 | (in_dummy_function): New. | |
8434 | (invoke_set_current_function_hook): New. | |
8435 | (set_cfun): New. | |
8436 | (push_cfun, pop_cfun): Use set_cfun. | |
8437 | (push_struct_function): New. | |
8438 | (allocate_struct_function): Call invoke_set_current_function_hook | |
8439 | before returning. | |
8440 | (prepare_function_start): Don't set cfun here. Remove unused | |
8441 | argument; fix all callers. | |
8442 | (init_dummy_function_start): Fiddle with in_dummy_function. Call | |
8443 | push_struct_function. | |
8444 | (init_function_start): Set cfun here. | |
8445 | (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun. | |
8446 | * omp-low.c (create_omp_child_function): Use push_struct_function | |
8447 | and pop_cfun to save/restore state. | |
8448 | (expand_omp_parallel): Remove unused saved_cfun variable. | |
8449 | * cgraphunit.c (ipa_passes): Use set_cfun. | |
8450 | * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here. | |
8451 | * dwarf2out.c (dwarf2out_abstract_function): Likewise. | |
8452 | * matrix-reorg.c (transform_allocation_sites): Likewise. | |
8453 | (matrix_reorg): Use set_cfun. | |
8454 | * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here. | |
8455 | * tree-optimize.c (tree_rest_of_compilation): Remove one redundant | |
8456 | assignment to cfun; use set_cfun for the other. | |
8457 | * tree-cfg.c (move_sese_region_to_fn): Use set_cfun. | |
8458 | (dump_function_to_file): Use push_cfun/pop_cfun here. | |
8459 | * c-decl.c (finish_function): Use set_cfun. | |
8460 | ||
8461 | 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com> | |
8462 | ||
8463 | * regrename.c (rerename_optimize): Use deferred rescanning and | |
8464 | insert explicit calls to rescan insns when changed. | |
8465 | ||
8466 | 2007-09-05 Jan Hubicka <jh@suse.cz> | |
8467 | ||
8468 | * optabs.c (libfunc_entry): Change optab to integer. | |
8469 | (hash_libfunc, convert_optab_libfunc, optab_libfunc, | |
8470 | set_optab_libfunc, set_conv_libfunc): Use optable indexes instead | |
8471 | of pointers for hashing. | |
8472 | ||
8473 | 2007-09-05 Jan Hubicka <jh@suse.cz> | |
8474 | ||
8475 | * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing | |
8476 | verifier. | |
8477 | * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise. | |
8478 | * see.c (pass_see): Likewise. | |
8479 | * tracer.c (pass_tracer): Likewise. | |
8480 | * postreload-gcse.c (pass_gcse2): Likewise. | |
8481 | * postreload.c (pass_postreload_cse): Likewise. | |
8482 | * mode-switching.c (pass_mode_switching): Likewise. | |
8483 | * modulo-sched.c (pass_sms): Likewise. | |
8484 | * cse.c (cse_insn): Likewise. | |
8485 | * web.c (pass_web): Likweise. | |
8486 | * combine-stack-adj.c (pass_stack_adjustments): Likewise. | |
8487 | * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise. | |
8488 | * loop-init.c (pass_rtl_loop_init): Likewise. | |
8489 | (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch, | |
8490 | pass_rtl_unroll_and, pass_rtl_doloop): Likewise. | |
8491 | * global.c (pass_global_alloc): Likewise. | |
8492 | * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine, | |
8493 | pass_if_after_reload): Likewise. | |
8494 | * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise. | |
8495 | * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise. | |
8496 | * regmove.c (pass_regmove): Likewise. | |
8497 | * function.c (pass_thread_prologugues_epilogues): Likewise. | |
8498 | * gcse.c (pass_gcse): Likewise. | |
8499 | * rtl-factoring.c (pass_rtl_seqabstr): Likewise. | |
8500 | * lower-subreg.c (pass_lower_subreg2): Likewise. | |
8501 | * bt-load.c (pass_branch_target_load): Likewise. | |
8502 | * emit-rtl.c (pass_unshare_all_rtl): Likewise. | |
8503 | * cfgcleanup.c (pass_jump, pass_jump2): Likewise. | |
8504 | * combine.c (pass_combine): Likewise. | |
8505 | * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise. | |
8506 | (pass_partition_blocks): Likewise. | |
8507 | * var-tracking.c (pass_variable_track): Likewise. | |
8508 | * reg-stack.c (pass_stack_regs_run): Likewise. | |
8509 | * sched-rgn.c (pass_sched, pass_sched2): Likewise. | |
8510 | * passes.c (pass_postreload): Likewise. | |
8511 | (execute_function_todo): Add TODO_verify_rtl_sharing handling code. | |
8512 | * tree-pass.h (TODO_verify_rtl_sharing): New. | |
8513 | (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi, | |
8514 | TODO_update_ssa_only_virtuals, TODO_remove_unused_locals, | |
8515 | TODO_set_props, TODO_df_finish, TODO_df_verify, | |
8516 | TODO_mark_first_instance, TODO_rebuild_alias): Renumber. | |
8517 | ||
8518 | 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
8519 | ||
8520 | * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p, | |
8521 | fold_real_zero_addition_p, reorder_operands_p, | |
8522 | div_if_zero_remainder, fold_undefer_overflow_warnings, | |
8523 | int_binop_types_match_p, fold_convert_const_int_from_int, | |
8524 | fold_convert_const_int_from_real, | |
8525 | fold_convert_const_int_from_fixed, | |
8526 | fold_convert_const_real_from_real, | |
8527 | fold_convert_const_real_from_fixed, | |
8528 | fold_convert_const_fixed_from_fixed, | |
8529 | fold_convert_const_fixed_from_int, | |
8530 | fold_convert_const_fixed_from_real, maybe_lvalue_p, | |
8531 | fold_checksum_tree, fold_check_failed, print_fold_checksum, | |
8532 | debug_fold_checksum, multiple_of_p): Constify. | |
8533 | * tree-flow-inline.h (get_lineno): Likewise. | |
8534 | * tree-flow.h (get_lineno): Likewise. | |
8535 | * tree-object-size.c (compute_object_offset, addr_object_size, | |
8536 | alloc_object_size, pass_through_call): Likewise. | |
8537 | * tree-pretty-print.c (op_symbol, print_call_name, | |
8538 | print_struct_decl, do_niy): Likewise. | |
8539 | * tree.h (fold_undefer_overflow_warnings, multiple_of_p, | |
8540 | debug_fold_checksum): Likewise. | |
8541 | ||
8542 | 2007-09-04 Steven Bosscher <steven@gcc.gnu.org> | |
8543 | ||
8544 | PR middle-end/33029 | |
8545 | * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL | |
8546 | note, remove the associated REG_RETVAL note. | |
8547 | ||
8548 | 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
8549 | ||
8550 | * config.gcc (powerpc*-*-*): Install | |
8551 | spu2vmx.h, vec_types.h, and si2vmx.h headers. | |
8552 | * config/rs6000/spu2vmx.h: New header. | |
8553 | * config/rs6000/si2vmx.h: New header. | |
8554 | * config/rs6000/vec_types.h: New header. | |
8555 | ||
8556 | 2007-09-05 Ben Elliston <bje@au.ibm.com> | |
8557 | ||
8558 | * varasm.c (initializer_constant_valid_p): Fix comment typo. | |
8559 | ||
8560 | 2007-09-05 Ben Elliston <bje@au.ibm.com> | |
8561 | ||
8562 | * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint, | |
8563 | not `m' for *ptrp. | |
8564 | (__stdcx): Make asm volatile. | |
8565 | (__stwcx, __stdcx): Return only 0 or 1. | |
8566 | ||
8567 | 2007-09-05 Jan Hubicka <jh@suse.cz> | |
8568 | ||
8569 | Revert: | |
8570 | ||
8571 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8572 | * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. | |
8573 | ||
8574 | 2007-09-04 Richard Guenther <rguenther@suse.de> | |
8575 | * tree-ssa-operands.c (add_virtual_operand): Only mark | |
8576 | stores as has_volatile_ops if alias information is not available. | |
8577 | ||
8578 | 2007-09-05 Jakub Jelinek <jakub@redhat.com> | |
8579 | ||
8580 | * config/rs6000/tramp.asm: Include config.h. | |
8581 | Check __PIC__ or __pic__ macro instead of SHARED. | |
8582 | ||
8583 | PR rtl-optimization/32300 | |
8584 | * see.c (see_copy_insn): New function. | |
8585 | (see_def_extension_not_merged, see_merge_one_use_extension, | |
8586 | see_merge_one_def_extension): Use it. Avoid changing | |
8587 | PREV_INSN/NEXT_INSN chains directly, insted emit insns | |
8588 | into sequences. Call df_insn_delete on temporary insns | |
8589 | that won't be emitted into the insn stream. | |
8590 | (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN | |
8591 | and run df_process_deferred_rescans () before run_fast_dce. | |
8592 | ||
8593 | PR tree-optimization/33017 | |
8594 | * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't | |
8595 | recurse for pure or const function calls. | |
8596 | ||
8597 | 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
8598 | ||
8599 | * c-format.c: Include alloc-pool.h. | |
8600 | (check_format_info_main): New argument fwt_alloc. Use allocation | |
8601 | pool instead of GC. Remove GC deallocation code. | |
8602 | (check_format_arg): Create allocation pool, pass it to | |
8603 | check_format_info_main and free it afterwards. | |
8604 | * Makefile.in (c-format.o): Add alloc-pool.h dependency. | |
8605 | ||
8606 | 2007-09-05 Ben Elliston <bje@au.ibm.com> | |
8607 | ||
8608 | * config/rs6000/ppu_intrinsics.h (__protected_stream_count): | |
8609 | Rename count macro arugment for clarity. | |
8610 | (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000. | |
8611 | (__protected_stream_set): Likewise, pass 0. | |
8612 | ||
8613 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8614 | ||
8615 | * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. | |
8616 | ||
8617 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8618 | ||
8619 | * invoke.texi (-finline-small-functions): Document. | |
8620 | * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE | |
8621 | when deciding what is inlinable. | |
8622 | (cgraph_decide_recursive_inlining): Handle flag_inline_functions. | |
8623 | (cgraph_decide_inlining_of_small_function): Handle new flags. | |
8624 | (cgraph_decide_inlining_incrementally): Likewise. | |
8625 | * opts.c (decode_options): Enable flag_inline_small_functions at -O2 | |
8626 | * common.opt (finline-small-functions): New. | |
8627 | * Makefile.in (build/gengtype.o-warn): Work around PR29478 | |
8628 | ||
8629 | 2007-09-04 Richard Guenther <rguenther@suse.de> | |
8630 | ||
8631 | * tree-ssa-operands.c (add_virtual_operand): Only mark | |
8632 | stores as has_volatile_ops if alias information is not available. | |
8633 | ||
8634 | 2007-09-04 Andrew Haley <aph@redhat.com> | |
8635 | ||
8636 | * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0. | |
8637 | ||
8638 | 2007-09-04 Andrew Haley <aph@redhat.com> | |
8639 | ||
8640 | * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New. | |
8641 | * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New. | |
8642 | * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New. | |
8643 | ||
8644 | 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr> | |
8645 | ||
8646 | PR c++/14178 | |
8647 | * common.opt: Mention ABI version 2 in comment. | |
8648 | ||
8649 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8650 | ||
8651 | * optabs.c (debug_optab_libfunc): Update; make available to gdb. | |
8652 | (libfunc_entry): New structure. | |
8653 | (libfunc_hash): New hashtable. | |
8654 | (hash_libfunc): New function. | |
8655 | (eq_libfunc): New function. | |
8656 | (convert_optab_libfunc): New function. | |
8657 | (optab_libfunc): New function. | |
8658 | (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc, | |
8659 | expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn, | |
8660 | expand_float, expand_fix, new_optab, new_convert_optab): | |
8661 | Update for new libfunc API. | |
8662 | (init_libfunc, init_integral_libfuncs, | |
8663 | init_floating_libfuncs, init_interclass_conv_libfuncs | |
8664 | init_intraclass_conv_libfuncs): Remove; reorganize all logic to: | |
8665 | (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc, | |
8666 | gen_intv_fp_libfunc, gen_interclass_conv_libfunc, | |
8667 | gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc, | |
8668 | gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc, | |
8669 | gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc, | |
8670 | gen_extend_conv_libfunc): New. | |
8671 | (init_one_libfunc): Revamp for hashtables. | |
8672 | (set_conv_libfunc): Likewise. | |
8673 | (init_optabs): Initialize hashtable; use lazy initialization where | |
8674 | possible. | |
8675 | * optabs.h (optab_handlers): Move out of GGC. | |
8676 | (optab, convert_optab): Move out of GGC; add lazy gen info. | |
8677 | (code_to_optab, convert_optab_table, optab_table): Move out of GGC. | |
8678 | (optab_libfunc, convert_optab_libfunc): New. | |
8679 | * builtins.c (expand_builtin_powi): Update for new API. | |
8680 | * expr.c (convert_move): Likewise. | |
8681 | * expmed.c (expand_divmod): Likewise. | |
8682 | ||
8683 | 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com> | |
8684 | ||
8685 | * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the | |
8686 | GOT pointer only if there is a constant pool. Use the allocated space | |
8687 | for SPE also. | |
8688 | ||
8689 | 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com> | |
8690 | ||
8691 | * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct | |
8692 | typo for AltiVec. | |
8693 | ||
8694 | 2007-09-04 Revital Eres <eres@il.ibm.com> | |
8695 | Richard Guenther <rguenther@suse.de> | |
8696 | R. Clint Whaley <whaley@cs.utsa.edu> | |
8697 | ||
8698 | * doc/invoke.texi (-fassociative-math, -freciprocal-math): | |
8699 | Document new flags. | |
8700 | * tree-tailcall.c (process_assignment): Use -fassociative-math | |
8701 | when reodering operands of floating-point type. | |
8702 | * fold-const.c (fold_comparison, fold_binary): Use | |
8703 | -fassociative-math and -freciprocal-math instead of | |
8704 | -funsafe-math-optimization flag. | |
8705 | * toplev.h (set_unsafe_math_optimizations_flags): Declare function. | |
8706 | * tree-ssa-math-opts.c (gate_cse_reciprocals): Use | |
8707 | -freciprocal-math instead of -funsafe-math-optimizations. | |
8708 | * opts.c (set_fast_math_flags): Set -freciprocal-math and | |
8709 | -fassociative-math when -ffast-math is set. | |
8710 | (set_unsafe_math_optimizations_flags): New Function | |
8711 | to set -freciprocal-math and -fassociative-math when | |
8712 | -funsafe-math-optimizations is set. | |
8713 | (common_handle_option): Call it. | |
8714 | * tree-vectorizer.c (vect_is_simple_reduction): Use | |
8715 | -fassociative-math when doing reduction on floats. | |
8716 | * loop-unroll.c (analyze_insn_to_expand_var): Use | |
8717 | -fassociative-math when expanding an accumulator of type float. | |
8718 | * simplify-rtx.c (simplify_binary_operation_1): Use | |
8719 | -fassociative-math and -freciprocal-math when reordeing operands | |
8720 | of floating-point type. | |
8721 | * combine.c (combine_simplify_rtx): Likewise. | |
8722 | * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb): | |
8723 | Likewise. | |
8724 | * common.opt (-fassociative-math, -freciprocal-math): New flags. | |
8725 | ||
8726 | 2007-09-04 Paolo Carlini <pcarlini@suse.de> | |
8727 | ||
8728 | PR c++/18608 | |
8729 | * doc/install.texi (--enable-__cxa_atexit): Fix typo. | |
8730 | ||
8731 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8732 | ||
8733 | * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop. | |
8734 | ||
8735 | 2007-09-04 Jan Hubicka <jh@suse.cz> | |
8736 | ||
8737 | * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR | |
8738 | and corresponding MATCH_DUP. | |
8739 | ||
8740 | 2007-09-04 Uros Bizjak <ubizjak@gmail.com> | |
8741 | ||
8742 | PR middle-end/33187 | |
8743 | * combine.c (subst): Do not try to simplify X if it represents load | |
8744 | of FP constant from the constant pool via float extension. | |
8745 | ||
8746 | 2007-09-04 Ben Elliston <bje@au.ibm.com> | |
8747 | ||
8748 | * c-opts.c: Include "tm_p.h". | |
8749 | * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency. | |
8750 | ||
8751 | 2007-09-04 Richard Guenther <rguenther@suse.de> | |
8752 | ||
8753 | PR tree-optimization/33291 | |
8754 | * tree-pretty-print.c (dump_generic_node): Dump all | |
8755 | qualifiers for pointer types, not only first. Dump | |
8756 | qualifiers for aggregate types as well. | |
8757 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always | |
8758 | use the canonical type for building ARRAY_REFs. | |
8759 | * gimplify.c (canonicalize_addr_expr): Clean up. The | |
8760 | correct validness check is compatibility of the pointer | |
8761 | types. Always use the canonical type for building | |
8762 | ARRAY_REFs and ADDR_EXPRs. | |
8763 | * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert | |
8764 | change that disabled propagation of ADDR_EXPRs into statements | |
8765 | with volatile ops. | |
8766 | ||
8767 | 2007-09-03 Zack Weinberg <zack@codesourcery.com> | |
8768 | ||
8769 | * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart) | |
8770 | (umulsi3_highpart): Make into expanders; existing insns are | |
8771 | now named *[insn]_nov6. Add stars to existing [insn]_v6 | |
8772 | counterparts' names. | |
8773 | ||
8774 | 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com> | |
8775 | ||
8776 | * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o) | |
8777 | (unprotoize.o): Remove SHLIB_MULTILIB. | |
8778 | ||
8779 | 2007-09-03 Eric Weddington <eweddington@cso.atmel.com> | |
8780 | ||
8781 | * doc/extend.texi: Document progmem attribute for AVR. | |
8782 | ||
8783 | 2007-09-03 Anatoly Sokolov <aesok@post.ru> | |
8784 | ||
8785 | PR target/28902 | |
8786 | * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define. | |
8787 | ||
8788 | 2007-09-03 Zack Weinberg <zack@codesourcery.com> | |
8789 | ||
8790 | * optabs.c (expand_ffs): Initialize val and defined_at_zero | |
8791 | to avoid warnings. | |
8792 | ||
8793 | * optabs.c: Remove unnecessary forward declarations. | |
8794 | (expand_unop_direct): New, broken out of expand_unop. | |
8795 | (expand_doubleword_clz): New. | |
8796 | (expand_ctz): Move above expand_ffs. Use | |
8797 | start_sequence, end_sequence, add_equal_note, and | |
8798 | expand_unop_direct. Add more commentary. | |
8799 | (expand_ffs): Try both ctz optab and expand_ctz. | |
8800 | Generate a test and branch if the hardware doesn't give us | |
8801 | a useful value for input zero. Style improvements similar to | |
8802 | expand_ctz. | |
8803 | ||
8804 | * config/arm/arm.md (ffssi2, ctzsi2): Delete. | |
8805 | ||
8806 | 2007-09-03 Zack Weinberg <zack@codesourcery.com> | |
8807 | ||
8808 | * config.gcc: Delete stanza for arm-semi-aof and | |
8809 | armel-semi-aof targets. | |
8810 | * config/arm/arm-protos.h | |
8811 | * config/arm/arm.c | |
8812 | * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks; | |
8813 | make all #ifndef AOF_ASSEMBLER blocks unconditional. Also | |
8814 | delete aof_pic_label and remove mention of AOF in comments. | |
8815 | * config/arm/arm.md: Delete patterns used only for AOF assembly. | |
8816 | * config/arm/aof.h | |
8817 | * config/arm/semiaof.h | |
8818 | * config/arm/t-semi: Delete file. | |
8819 | ||
8820 | 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
8821 | ||
8822 | * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX, | |
8823 | CONST_CAST_BB): New macros for type-specific casts. | |
8824 | (CONST_CAST): Add a TYPE parameter and define it in terms of | |
8825 | CONST_CAST2. | |
8826 | ||
8827 | * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST. | |
8828 | * c-lex.c (cb_ident, lex_string): Likewise, | |
8829 | * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise, | |
8830 | * config/i386/i386.c (ix86_function_regparm, | |
8831 | ix86_function_sseregparm): Use CONST_CAST_TREE. | |
8832 | * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for | |
8833 | CONST_CAST. | |
8834 | * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, | |
8835 | give_switch, set_multilib_dir): Likewise, | |
8836 | * gengtype-parse.c (string_seq, typedef_name): Likewise, | |
8837 | * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE. | |
8838 | * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX. | |
8839 | * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST. | |
8840 | * prefix.c (update_path): Likewise, | |
8841 | * pretty-print.c (pp_base_destroy_prefix): Likewise, | |
8842 | * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX. | |
8843 | * tree-cfg.c (tree_can_merge_blocks_p, | |
8844 | tree_block_ends_with_condjump_p): Use CONST_CAST_BB. | |
8845 | * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE. | |
8846 | * tree.c (build_string): Supply a TYPE for CONST_CAST. | |
8847 | (attribute_list_contained): Use CONST_CAST_TREE. | |
8848 | ||
8849 | 2007-09-03 Krister Walfridsson <cato@df.lth.se> | |
8850 | ||
8851 | * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define. | |
8852 | ||
8853 | 2007-09-03 Richard Sandiford <richard@codesourcery.com> | |
8854 | ||
8855 | PR middle-end/33290 | |
8856 | * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs | |
8857 | before forcing them into a register. | |
8858 | ||
8859 | 2007-09-03 Richard Sandiford <richard@codesourcery.com> | |
8860 | ||
8861 | * config/mips/mips.md (fetchop_bit): Use define_code_iterator | |
8862 | rather than define_code_macro. | |
8863 | ||
8864 | 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
8865 | ||
8866 | * gcc.c (xputenv): New function. | |
8867 | (putenv_from_prefixes): Use xputenv instead of putenv. | |
8868 | (process_command): Use xputenv instead of putenv. | |
8869 | (set_collect_gcc_options): Use xputenv instead of putenv. | |
8870 | (main): Use xputenv instead of putenv. | |
8871 | ||
8872 | 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com> | |
8873 | ||
8874 | * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe | |
8875 | availability of swap instruction. | |
8876 | * config/cris/cris.md (bswapsi2): Implement using swap instruction. | |
8877 | ||
8878 | 2007-09-03 Revital Eres <eres@il.ibm.com> | |
8879 | ||
8880 | * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update | |
8881 | Documentation. | |
8882 | ||
8883 | 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com> | |
8884 | Ayal Zaks <zaks@il.ibm.com> | |
8885 | Revital Eres <eres@il.ibm.com> | |
8886 | ||
8887 | * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule, | |
8888 | compute_split_row): New functions. | |
8889 | (ps_unschedule_node): Remove. | |
8890 | (normalize_sched_times): Iterate over the already scheduled | |
8891 | insns instead of the number of nodes. | |
8892 | (MAX_SPLIT_NUM): New definition. | |
8893 | (sms_schedule_by_order): Change the scheduling heuristic to | |
8894 | avoid useless increases of initiation interval ii. | |
8895 | (get_sched_window): Add dump printouts. | |
8896 | ||
8897 | 2007-09-02 David Daney <ddaney@avtrex.com> | |
8898 | ||
8899 | * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP, | |
8900 | UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants. | |
8901 | (optab, insn): Add more attributes. | |
8902 | (fetchop_bit): New code macro. | |
8903 | (immediate_insn): New code macro attribute. | |
8904 | (sync): Change condition to ISA_HAS_SYNC. | |
8905 | (rdhwr): Change predicate for operand 0 to register_operand. | |
8906 | (memory_barrier): New expand. | |
8907 | (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>, | |
8908 | sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, | |
8909 | sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, | |
8910 | sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, | |
8911 | sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns. | |
8912 | * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates. | |
8913 | (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, | |
8914 | MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, | |
8915 | MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros. | |
8916 | ||
8917 | 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com> | |
8918 | Hans-Peter Nilsson <hp@axis.com> | |
8919 | ||
8920 | * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO): | |
8921 | Defined to describe availability and behavior of CLZ. | |
8922 | * config/cris/cris.md (clzsi2): Implement using lz instruction. | |
8923 | * config/cris/cris.opt: Tweak comment for "-metrax4". | |
8924 | * config/cris/arit.c (LZ): When defined, define as __builtin_clz. | |
8925 | * longlong.h [__CRIS__ && __CRIS_arch_version >= 3] | |
8926 | (count_leading_zeros): Define. | |
8927 | ||
8928 | 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
8929 | ||
8930 | * ggc-page.c (ggc_pch_read): Call validate_free_objects. | |
8931 | ||
8932 | 2007-09-02 Joseph Myers <joseph@codesourcery.com> | |
8933 | ||
8934 | PR c/29237 | |
8935 | PR middle-end/33272 | |
8936 | * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter | |
8937 | decayed from array. | |
8938 | ||
8939 | 2007-09-01 Kazu Hirata <kazu@codesourcery.com> | |
8940 | ||
8941 | * config/arm/arm.c, config/rs6000/ppu_intrinsics.h, | |
8942 | config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c, | |
8943 | ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c, | |
8944 | sched-deps.c, sched-int.h, system.h, target.h, | |
8945 | tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c, | |
8946 | tree.def: Fix comment typos. | |
8947 | ||
8948 | 2007-09-01 Kazu Hirata <kazu@codesourcery.com> | |
8949 | ||
8950 | * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove. | |
8951 | (override_options): Turn on -mstrict-align on non-ColdFire | |
8952 | targets. | |
8953 | * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment. | |
8954 | ||
8955 | 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
8956 | ||
8957 | * c-common.c (const_strip_array_types): Delete. | |
8958 | * c-common.h (const_strip_array_types): Likewise. | |
8959 | * emit-rtl.c (const_next_insn, const_previous_insn, | |
8960 | const_next_nonnote_insn, const_prev_nonnote_insn, | |
8961 | const_next_real_insn, const_prev_real_insn, | |
8962 | const_next_active_insn, const_prev_active_insn, const_next_label, | |
8963 | const_prev_label): Delete. | |
8964 | * gimple-low.c (block_may_fallthru): Use expr_last. | |
8965 | * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn. | |
8966 | * rtl.h (const_previous_insn, const_next_insn, | |
8967 | const_prev_nonnote_insn, const_next_nonnote_insn, | |
8968 | const_prev_real_insn, const_next_real_insn, | |
8969 | const_prev_active_insn, const_next_active_insn, const_prev_label, | |
8970 | const_next_label): Delete. | |
8971 | * rtlanal.c (keep_with_call_p): Use next_nonnote_insn. | |
8972 | * system.h (CONST_CAST): Update comment. | |
8973 | * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt. | |
8974 | (const_first_stmt, const_last_stmt): Delete. | |
8975 | (tree_block_ends_with_condjump_p): Use last_stmt. | |
8976 | * tree-flow.h (const_first_stmt, const_last_stmt): Delete. | |
8977 | * tree-iterator.c (const_expr_first, const_expr_last, | |
8978 | const_expr_only): Delete. | |
8979 | * tree.c (const_lookup_attribute): Likewise. | |
8980 | (attribute_list_contained): Use lookup_attribute. | |
8981 | * tree.h (const_lookup_attribute, const_expr_first, | |
8982 | const_expr_last, const_expr_only): Delete. | |
8983 | ||
8984 | 2007-09-01 Richard Guenther <rguenther@suse.de> | |
8985 | ||
8986 | * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE | |
8987 | instead of TREE_THIS_VOLATILE. | |
8988 | * tree-ssa-operands.c (add_virtual_operand): Do not set | |
8989 | has_volatile_ops. Do not check s_ann for NULL. | |
8990 | (get_indirect_ref_operands): Likewise. | |
8991 | (get_expr_operands): Likewise. For all reference trees | |
8992 | set has_volatile_ops based on TREE_THIS_VOLATILE. Also | |
8993 | check base of reference for TREE_THIS_VOLATILE. | |
8994 | ||
8995 | 2007-09-01 Richard Guenther <rguenther@suse.de> | |
8996 | ||
8997 | * tree-cfg.c (verify_gimple_expr): Fix check for conversions | |
8998 | between integral types. Also allow conversions between | |
8999 | pointer types. | |
9000 | ||
9001 | 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
9002 | ||
9003 | * optabs.c (prepare_float_lib_cmp): Use | |
9004 | libgcc_cmp_return_mode instead of word_mode. | |
9005 | * config/dfp-bit.h: Likewise. | |
9006 | * config/fp-bit.h: Likewise. | |
9007 | * config/spu/spu.c (spu_libgcc_cmp_return_mode): | |
9008 | New function. | |
9009 | (spu_libgcc_shift_count_mode): New function. | |
9010 | (TARGET_LIBGCC_CMP_RETURN_MODE): Define. | |
9011 | (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define. | |
9012 | ||
9013 | 2007-08-31 Joseph Myers <joseph@codesourcery.com> | |
9014 | ||
9015 | * tree-pretty-print.c: Include output.h. | |
9016 | (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not | |
9017 | HOST_WIDE_INT_PRINT_DEC. | |
9018 | * Makefile.in (tree-pretty-print.o): Add dependency on output.h. | |
9019 | ||
9020 | 2007-08-31 Zdenek Dvorak <ook@ucw.cz> | |
9021 | ||
9022 | PR rtl-optimization/33224 | |
9023 | * loop-iv.c (latch_dominating_def): Check that the definition belongs | |
9024 | to the analysed region. | |
9025 | ||
9026 | 2007-08-31 Richard Guenther <rguenther@suse.de> | |
9027 | ||
9028 | * function.c (allocate_struct_function): Do not set | |
9029 | current_function_returns_pointer. | |
9030 | * function.h (struct var_refs_queue): Remove. | |
9031 | (struct simple_obstack_stack): Likewise. | |
9032 | (struct function): Remove fixup_var_refs_queue member. | |
9033 | Remove returns_pointer flag. | |
9034 | (current_function_returns_pointer): Remove define. | |
9035 | ||
9036 | 2007-08-31 Nick Clifton <nickc@redhat.com> | |
9037 | ||
9038 | * tree-ssa-coalesce.c (compare_pairs): Use the elements as | |
9039 | secondary keys in order to obtain a stable sort. | |
9040 | ||
9041 | 2007-08-31 Nick Clifton <nickc@redhat.com> | |
9042 | ||
9043 | PR target/33132 | |
9044 | * config/m32r/constraints.md: Add W constraint for integer zero. | |
9045 | * config/m32r/m32r.md (get_pc): Use W and i constraints. | |
9046 | Fix length calculation by using alternatives. | |
9047 | ||
9048 | 2007-08-31 Richard Sandiford <richard@codesourcery.com> | |
9049 | ||
9050 | * optabs.c (shift_optab_p, commutative_optab_p): New functions, | |
9051 | split out from expand_binop. | |
9052 | (avoid_expensive_constant): New function. | |
9053 | (expand_binop_directly): Remove commutative_op argument and | |
9054 | (expand_binop_directly): Remove commutative_op argument and | |
9055 | call cummutative_optab_p instead. Do not change op0 or op1 | |
9056 | when swapping xop0 and xop1. Apply avoid_expensive_constant | |
9057 | to each argument after potential swapping. Enforce the | |
9058 | canonical order of commutative operands. | |
9059 | (expand_binop): Use shift_optab_p and commutative_optab_p. | |
9060 | Update the calls to expand_binop_directly. Only force constants | |
9061 | into registers when widening an operation. Only swap operands | |
9062 | once a direct expansion has been rejected. | |
9063 | (expand_twoval_binop): Only force constants into registers when | |
9064 | using a direct expansion. | |
9065 | ||
9066 | 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com> | |
9067 | ||
9068 | * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED. | |
9069 | (sched_analyze_insn): Don't postprocess speculative dependencies when | |
9070 | target has no scheduling. | |
9071 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix | |
9072 | 'uninitialized' warning. | |
9073 | ||
9074 | 2007-08-31 Richard Guenther <rguenther@suse.de> | |
9075 | ||
9076 | * tree.c (build_complex_type): Always set TYPE_NAME for | |
9077 | comples types. | |
9078 | ||
9079 | 2007-08-31 Olivier Hainque <hainque@adacore.com> | |
9080 | ||
9081 | * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New | |
9082 | internal macro. Default alignment factor for csect directives, chosen | |
9083 | to match what BIGGEST_ALIGNMENT allows. | |
9084 | (DATA_SECTION_ASM_OP): Use it. | |
9085 | * config/rs6000/rs6000.c | |
9086 | (rs6000_xcoff_output_readonly_section_asm_op): | |
9087 | Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR. | |
9088 | (rs6000_xcoff_output_readwrite_section_asm_op): Likewise. | |
9089 | ||
9090 | 2007-08-31 Olivier Hainque <hainque@adacore.com> | |
9091 | ||
9092 | * dbxout.c (dbxout_block): Move declaration within the first | |
9093 | #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such | |
9094 | block to include the definition, together with the associated | |
9095 | helpers. | |
9096 | ||
9097 | 2007-08-31 David Edelsohn <edelsohn@gnu.org> | |
9098 | Revital Eres <eres@il.ibm.com> | |
9099 | ||
9100 | * doc/invoke.texi (-mpaired): Document flag. | |
9101 | * config.gcc: Include paired.h in powerpc extra_headers and | |
9102 | 750cl.h in powerpc-*-linux*paired*. | |
9103 | * config/rs6000/rs6000.opt (-mpaired): New flag. | |
9104 | * config/rs6000/rs6000.c (paired_init_builtins, | |
9105 | paired_expand_builtin, paired_expand_lv_builtin, | |
9106 | paired_expand_stv_builtin, paired_expand_predicate_builtin): | |
9107 | New functions to support the paired single builtin functions. | |
9108 | (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE. | |
9109 | (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired | |
9110 | single builtins. | |
9111 | (bdesc_paired_preds): New structure for paired predicate | |
9112 | instructions. | |
9113 | (rs6000_expand_builtin): Expand paired single builtins. | |
9114 | (rs6000_init_builtins): Init paired single builtins. | |
9115 | (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf. | |
9116 | Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe | |
9117 | and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types | |
9118 | v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf. | |
9119 | (rs6000_vector_mode_supported_p): Support paired vector mode. | |
9120 | * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD, | |
9121 | PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT): | |
9122 | New. | |
9123 | (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE. | |
9124 | (DATA_ALIGNMENT): Likewise. | |
9125 | (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE. | |
9126 | (rs6000_builtins): Add PAIRED builtins. | |
9127 | * config/rs6000/rs6000.md: Include paired.md. | |
9128 | * config/rs6000/paired.h: New. | |
9129 | * config/rs6000/paired.md: New. | |
9130 | * config/rs6000/750cl.h: New. | |
9131 | * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl. | |
9132 | ||
9133 | 2007-08-30 Ollie Wild <aaw@google.com> | |
9134 | ||
9135 | * c-opts.c (c_common_handle_option): Support -fno-directives-only. | |
9136 | * gcc.c (default_compilers): Add -fno-directives-only to | |
9137 | @assembler-with-cpp. | |
9138 | ||
9139 | 2007-08-30 Sandra Loosemore <sandra@codesourcery.com> | |
9140 | ||
9141 | PR middle-end/33211 | |
9142 | ||
9143 | * regclass.c (initial_fixed_regs): Revert previous change and make | |
9144 | it const again. | |
9145 | (initial_call_used_regs): Likewise. | |
9146 | (initial_call_really_used_regs): Delete, reverting previous addition. | |
9147 | (initial_reg_names): Likewise. | |
9148 | (init_reg_sets): Revert previous change. | |
9149 | (saved_fixed_regs): New. | |
9150 | (saved_call_used_regs): New. | |
9151 | (saved_call_really_used_regs): New. | |
9152 | (saved_reg_names): New. | |
9153 | (save_register_info): New. | |
9154 | (restore_register_info): New. | |
9155 | (init_reg_sets_1): Replace reset of register info with call to | |
9156 | restore_register_info. | |
9157 | * rtl.h (save_register_info): Declare. | |
9158 | * toplev.c (backend_init): Call save_register_info. | |
9159 | ||
9160 | 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com> | |
9161 | ||
9162 | * tree-ssa-propagate.c (set_rhs): Remove the copied annotation | |
9163 | from the original statement. | |
9164 | ||
9165 | 2007-08-30 Chao-ying Fu <fu@mips.com> | |
9166 | ||
9167 | * c-lex.c (interpret_fixed): Declare. | |
9168 | (interpret_float): Process _Fract and _Accum. | |
9169 | (interpret_fixed): New function. | |
9170 | * final.c (output_addr_const): Process CONST_FIXED. | |
9171 | * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG. | |
9172 | (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT, | |
9173 | SS_DIV, US_DIV. | |
9174 | (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV, | |
9175 | US_DIV, US_ASHIFT. | |
9176 | (simplify_immed_subreg): Support CONST_FIXED. | |
9177 | Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. | |
9178 | (simplify_subreg): Support CONST_FIXED. | |
9179 | ||
9180 | 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
9181 | ||
9182 | * config/rs6000/ppu_intrinsics.h: New file. | |
9183 | * config.gcc (powerpc*-*-* <extra_headers>): Install | |
9184 | ppu_intrinsics.h. | |
9185 | ||
9186 | 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com> | |
9187 | ||
9188 | * cfg.c (dump_flow_info): Change to also print entry and exit | |
9189 | block info. | |
9190 | * print-rtl.c (print_rtl_single): Allow to print rtl with | |
9191 | -fdump-unnumbered. | |
9192 | ||
9193 | 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com> | |
9194 | ||
9195 | * df-core.h (df_dump_region): New function. | |
9196 | * df.h (df_dump_region): New function. | |
9197 | * loop-invariant.c (find_defs): Add call to df_dump_region. | |
9198 | * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to | |
9199 | df_dump_region. | |
9200 | ||
9201 | 2007-08-30 Jakub Jelinek <jakub@redhat.com> | |
9202 | ||
9203 | PR target/33168 | |
9204 | * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return | |
9205 | true if any of the compare_section_name calls returned true, | |
9206 | rather than if any returned false. | |
9207 | ||
9208 | 2007-08-30 Richard Guenther <rguenther@suse.de> | |
9209 | ||
9210 | PR tree-optimization/33199 | |
9211 | * tree-ssa-structalias.c (handle_lhs_call): New function. | |
9212 | (find_func_aliases): In non-IPA mode make sure that for | |
9213 | calls that return a pointer we add a constraint for the | |
9214 | result to point to anything. | |
9215 | ||
9216 | 2007-08-30 Richard Guenther <rguenther@suse.de> | |
9217 | ||
9218 | * doc/invoke.texi (-mveclibabi): Document new target option. | |
9219 | * config/i386/i386.opt (-mveclibabi): New target option. | |
9220 | * config/i386/i386.c (ix86_veclib_handler): Handler for | |
9221 | vectorization library support. | |
9222 | (override_options): Handle the -mveclibabi option, initialize | |
9223 | the vectorization library handler. | |
9224 | (ix86_builtin_vectorized_function): As fallback call the | |
9225 | vectorization library handler, if set. | |
9226 | (ix86_veclibabi_acml): New static function for ACML ABI style | |
9227 | vectorization support. | |
9228 | ||
9229 | 2007-08-30 Jakub Jelinek <jakub@redhat.com> | |
9230 | ||
9231 | * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode | |
9232 | used_m, even if it is 32-bit aligned, adjust used_m MEM to have | |
9233 | SImode and update m. Don't run gen_lowpart_common on arbitrary | |
9234 | memory address, force it to register first. | |
9235 | ||
9236 | PR middle-end/32758 | |
9237 | * dce.c (dce_process_block): Don't delete setters of | |
9238 | artificially used registers. | |
9239 | ||
9240 | 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
9241 | ||
9242 | * config/s390/s390.md ("*add<mode>3_alc_carry1_cc", | |
9243 | "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc", | |
9244 | "*add<mode>3_alc_carry2_cconly"): New insn definitions. | |
9245 | ||
9246 | 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
9247 | ||
9248 | * config/s390/s390.c (s390_expand_addcc): Emit canonical alc | |
9249 | pattern. | |
9250 | * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc", | |
9251 | "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical. | |
9252 | ||
9253 | 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9254 | ||
9255 | * system.h: Activate -Wcast-qual as warning-only. | |
9256 | ||
9257 | 2007-08-29 Paolo Bonzini <bonzini@gnu.org> | |
9258 | ||
9259 | PR target/33168 | |
9260 | * config/rs6000/rs6000.c (compare_section_name): New function. | |
9261 | (rs6000_elf_in_small_data_p): Compare section prefixes instead | |
9262 | of full name. | |
9263 | ||
9264 | 2007-08-29 Olivier Hainque <hainque@adacore.com> | |
9265 | ||
9266 | * xcoffout.c: #include debug.h. | |
9267 | * Makefile.in (xcoffout.o): Add debug.h dependency. | |
9268 | ||
9269 | 2007-08-29 Uros Bizjak <ubizjak@gmail.com> | |
9270 | ||
9271 | * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: | |
9272 | Change CONST_VECTOR_ELT to XVECEXP in elem calculation. | |
9273 | ||
9274 | 2007-08-29 Richard Guenther <rguenther@suse.de> | |
9275 | ||
9276 | * tree-pretty-print.c (dump_generic_node): Print | |
9277 | label DECL_UID as D.%u. | |
9278 | * tree-dfa.c (dump_variable): Print DECL_UID as D.%u. | |
9279 | ||
9280 | 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
9281 | ||
9282 | * builtin-types.def (BT_FN_PTR_PTR_SIZE): New type. | |
9283 | * builtins.def (BUILT_IN_REALLOC): New builtin. | |
9284 | ||
9285 | 2007-08-29 Douglas Gregor <doug.gregor@gmail.com> | |
9286 | ||
9287 | PR c++/33194 | |
9288 | * tree.c (build_type_attribute_qual_variant): Set canonical types | |
9289 | on the final, unqualified attribute variant before building the | |
9290 | qualified version. | |
9291 | ||
9292 | 2007-08-29 Jie Zhang <jie.zhang@analog.com> | |
9293 | ||
9294 | * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument | |
9295 | order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu. | |
9296 | ||
9297 | 2007-08-29 Jie Zhang <jie.zhang@analog.com> | |
9298 | ||
9299 | Revert | |
9300 | 2007-08-29 Jie Zhang <jie.zhang@analog.com> | |
9301 | * config/bfin/bfin.md (composev2hi): Put operands into vector | |
9302 | with correct order. | |
9303 | ||
9304 | 2007-08-29 Jie Zhang <jie.zhang@analog.com> | |
9305 | ||
9306 | * config/bfin/bfin.md (composev2hi): Put operands into vector | |
9307 | with correct order. | |
9308 | ||
9309 | 2007-08-29 Jie Zhang <jie.zhang@analog.com> | |
9310 | ||
9311 | * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text | |
9312 | attribute when appropriate. | |
9313 | (bfin_handle_l1_text_attribute): New. | |
9314 | (bfin_handle_l1_data_attribute): New. | |
9315 | (bfin_attribute_table): Add attributes: l1_text, l1_data, | |
9316 | l1_data_A and l1_data_B. | |
9317 | * doc/extend.texi (node Function Attributes): Document l1_text | |
9318 | function attribute. | |
9319 | (Variable Attributes): Add Blackfin subsection. Document l1_data, | |
9320 | l1_data_A and l1_data_B variable attributes. | |
9321 | ||
9322 | 2007-08-28 Jie Zhang <jie.zhang@analog.com> | |
9323 | ||
9324 | * config/bfin/bfin.opt (minline-plt): Add. | |
9325 | * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit | |
9326 | call to global functions. | |
9327 | * doc/invoke.texi (Option Summary): Mention -minline-plt. | |
9328 | (Blackfin Options): Document -minline-plt. | |
9329 | ||
9330 | 2007-08-28 Nathan Sidwell <nathan@codesourcery.com> | |
9331 | ||
9332 | * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never | |
9333 | given a non-function. | |
9334 | (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind. | |
9335 | ||
9336 | 2007-08-28 DJ Delorie <dj@redhat.com> | |
9337 | ||
9338 | * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support. | |
9339 | ||
9340 | 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9341 | ||
9342 | * system.h (CONST_CAST): Avoid union for gcc-4.0.x. | |
9343 | ||
9344 | 2007-08-28 Richard Guenther <rguenther@suse.de> | |
9345 | ||
9346 | * tree.h (struct tree_function_decl): Increase size of | |
9347 | function_code bitfield. | |
9348 | ||
9349 | 2007-08-28 Nathan Sidwell <nathan@codesourcery.com> | |
9350 | Kazu Hirata <kazu@codesourcery.com> | |
9351 | ||
9352 | * config/m68k/linux.h | |
9353 | (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0. | |
9354 | * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New. | |
9355 | (m68k_return_in_memory): New. | |
9356 | * config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT): | |
9357 | New. | |
9358 | ||
9359 | 2007-08-28 Uros Bizjak <ubizjak@gmail.com> | |
9360 | ||
9361 | PR target/32661 | |
9362 | * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: | |
9363 | Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as | |
9364 | operand) when top VEC_SELECT extracts scalar element. | |
9365 | * config/i386/sse.md (*vec_extract_v4si_mem): New pattern. | |
9366 | (*vec_extract_v4sf_mem): Ditto. | |
9367 | ||
9368 | 2007-08-28 Jakub Jelinek <jakub@redhat.com> | |
9369 | ||
9370 | PR middle-end/32370 | |
9371 | * passes.c (init_optimization_passes): Move pass_df_finish | |
9372 | after pass_postreload sublist. | |
9373 | ||
9374 | PR rtl-optimization/33148 | |
9375 | * simplify-rtx.c (simplify_unary_operation_1): Only optimize | |
9376 | (neg (lt X 0)) if X has scalar int mode. | |
9377 | ||
9378 | PR debug/32914 | |
9379 | * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR | |
9380 | initializer, use build_vector_from_ctor if possible to create | |
9381 | VECTOR_CST out of it. If vector initializer is not VECTOR_CST | |
9382 | even after this, return NULL. | |
9383 | ||
9384 | 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
9385 | ||
9386 | * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST. | |
9387 | ||
9388 | 2007-08-28 Richard Guenther <rguenther@suse.de> | |
9389 | ||
9390 | * tree.h (DECL_DISREGARD_INLINE_LIMITS): New. | |
9391 | (struct tree_function_decl): Make function_code a bitfield. | |
9392 | Add disregard_inline_limits flag. | |
9393 | * cgraphunit.c (cgraph_process_new_functions): Check | |
9394 | DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p. | |
9395 | (cgraph_preserve_function_body_p): Likewise. | |
9396 | * ipa-inline.c (compute_inline_parameters): Likewise. | |
9397 | * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS | |
9398 | for GNU C extern inline functions. | |
9399 | (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS. | |
9400 | * tree-inline.c (disregard_inline_limits_p): Remove. | |
9401 | * tree-inline.h (disregard_inline_limits_p): Likewise. | |
9402 | * c-common.c (handle_always_inline_attribute): Set | |
9403 | DECL_DISREGARD_INLINE_LIMITS. | |
9404 | * langhooks.c (add_builtin_function): Verify the function code | |
9405 | fits in the bitfield. | |
9406 | ||
9407 | 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com> | |
9408 | Vladimir Yanovsky <yanov@il.ibm.com> | |
9409 | Revital Eres <eres@il.ibm.com> | |
9410 | Andrey Belevantsev <abel@ispras.ru> | |
9411 | ||
9412 | * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched | |
9413 | is set. | |
9414 | * modulo-sched.c: Add documentation regarding do-loop. | |
9415 | (doloop_register_get): Change number of arguments to support | |
9416 | the new do-loop pattern and check whether COUNT_REG has no other | |
9417 | occurences in the loop besides in the control part. | |
9418 | (duplicate_insns_of_cycles): Do not duplicate the insn which | |
9419 | changes count_reg as it is already adjusted. | |
9420 | (generate_prolog_epilog): New argument to support the new | |
9421 | do-loop pattern. Change the subtract instruction to use | |
9422 | expand_simple_binop. Call duplicate_insns_of_cycles with new | |
9423 | argument. | |
9424 | (sms_schedule): Call doloop_register_get and | |
9425 | generate_prolog_epilog with new argument. Do not handle loops | |
9426 | with single sets insns with subreg in their lhs. | |
9427 | * loop-doloop.c (doloop_optimize): Support for another do-loop | |
9428 | pattern. | |
9429 | (doloop_condition_get): Gets an instruction instead of a pattern | |
9430 | and change the return condition when the do-loop pattern is | |
9431 | not parallel. | |
9432 | * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg | |
9433 | deps when considering to not create edges. | |
9434 | ||
9435 | 2007-08-27 Alexandre Oliva <aoliva@redhat.com> | |
9436 | ||
9437 | * doc/extend.texi (gnu_inline funtion attribute): Document C++ | |
9438 | behavior. | |
9439 | ||
9440 | 2007-08-27 Jason Merrill <jason@redhat.com> | |
9441 | ||
9442 | PR c++/31337 | |
9443 | * gimplify.c (gimplify_modify_expr): Discard the assignment of | |
9444 | zero-sized types after calling gimplify_modify_expr_rhs. | |
9445 | ||
9446 | 2007-08-27 Sandra Loosemore <sandra@codesourcery.com> | |
9447 | ||
9448 | * regclass.c (init_reg_autoinc): Fix typo. | |
9449 | ||
9450 | 2007-08-27 Daniel Berlin <dberlin@dberlin.org> | |
9451 | ||
9452 | Fix PR tree-optimization/33173 | |
9453 | * tree-ssa-alias.c (find_used_portions): Fix reversed test. | |
9454 | ||
9455 | 2007-08-27 H.J. Lu <hongjiu.lu@intel.com> | |
9456 | ||
9457 | PR target/31385 | |
9458 | * config/i386/i386.h (VALID_DFP_MODE_P): New. | |
9459 | * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in | |
9460 | GPR. | |
9461 | ||
9462 | 2007-08-27 Sandra Loosemore <sandra@codesourcery.com> | |
9463 | David Ung <davidu@mips.com> | |
9464 | Nigel Stephens <nigel@mips.com> | |
9465 | ||
9466 | Separate target-specific initialization from general | |
9467 | back-end initialization. | |
9468 | ||
9469 | * toplev.c (init_alignments): New, split out from... | |
9470 | (process_options): ...here. | |
9471 | (backend_init_target): New, split out from... | |
9472 | (backend_init): ...here. | |
9473 | (lang_dependent_init_target): New, split out from... | |
9474 | (lang_dependent_init): ...here. | |
9475 | (target_reinit): New. | |
9476 | * toplev.h (target_reinit): Declare. | |
9477 | * expr.c (init_expr_target): Renamed from init_expr_once, since it | |
9478 | now can be called more than once. Update comments. | |
9479 | * expr.h (init_expr_target): Likewise. | |
9480 | * alias.c (init_alias_target): Renamed from init_alias_once, since it | |
9481 | now can be called more than once. Explicitly zero | |
9482 | static_reg_base_value. | |
9483 | * emit-rtl.c (init_emit_regs): New, split out from... | |
9484 | (init_emit_once): Here. | |
9485 | * regclass.c (initial_fixed_regs, initial_call_used_regs): Make | |
9486 | non-const, so that changes from command-line arguments can overwrite | |
9487 | values provided by the static initializers. | |
9488 | (initial_call_really_used_regs): New, used similarly to the above. | |
9489 | (initial_reg_names): Likewise. | |
9490 | (last_mode_for_init_move_cost): Promoted function-local static to | |
9491 | file-scope static to make it accessible outside init_move_cost. | |
9492 | (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet. | |
9493 | Do not initialize inv_reg_alloc_order yet, either. Do initialize | |
9494 | reg_names since it is needed for parsing command-line options. | |
9495 | (init_move_cost): Use last_mode_for_init_move_cost instead of | |
9496 | function-local static. | |
9497 | (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and | |
9498 | call_really_used_regs now. Reinitialize reg_names. Also | |
9499 | initialize inv_reg_alloc_order. Zero reg_class_subunion and | |
9500 | reg_class_superunion. Clear losing_caller_save_reg_set. | |
9501 | Preserve global registers if called more than once. Reset | |
9502 | move cost, may_move_in_cost, may_move_out_cost, and | |
9503 | last_mode_for_init_move_cost. | |
9504 | (init_reg_modes_target): Renamed from init_reg_modes_once, since it | |
9505 | can now be invoked more than once. Update comments. | |
9506 | (init_regs): Update comments. | |
9507 | (fix_register): Update initial_fixed_regs, initial_call_used_regs, | |
9508 | and initial_call_really_used_regs, instead of the non-initial | |
9509 | variables. This allows us to save the command-line register settings | |
9510 | after target reinitialization. | |
9511 | (init_reg_autoinc): Zero forbidden_inc_dec_classes. | |
9512 | * rtl.h (init_emit_regs): Declare. | |
9513 | (init_reg_modes_target, init_alias_target): Renamed as described | |
9514 | above. | |
9515 | * reload1.c (init_reload): Update comments. | |
9516 | * optabs.c (init_optabs): Likewise. | |
9517 | * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs. | |
9518 | ||
9519 | 2007-08-26 Chao-ying Fu <fu@mips.com> | |
9520 | ||
9521 | * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of | |
9522 | __typeof(). | |
9523 | ||
9524 | 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9525 | ||
9526 | * alias.c (memory_modified_1, memory_modified_in_insn_p): | |
9527 | Constify. | |
9528 | * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p): | |
9529 | Likewise. | |
9530 | * bb-reorder.c (copy_bb_p): Likewise. | |
9531 | * cfghooks.c (can_remove_branch_p, can_merge_blocks_p, | |
9532 | predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, | |
9533 | block_ends_with_condjump_p): Likewise. | |
9534 | * cfghooks.h (can_remove_branch_p, can_merge_blocks_p, | |
9535 | predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, | |
9536 | block_ends_with_condjump_p): Likewise. | |
9537 | * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise. | |
9538 | * cfgrtl.c (can_delete_note_p, can_delete_label_p, | |
9539 | rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p, | |
9540 | rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p, | |
9541 | need_fake_edge_p, rtl_can_remove_branch_p): Likewise. | |
9542 | * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use | |
9543 | debug_true_const_tree instad of debug_true_tree. | |
9544 | * debug.c (do_nothing_debug_hooks): Likewise. | |
9545 | * debug.h (ignore_block, debug_true_const_tree): Constify. | |
9546 | * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save, | |
9547 | dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type, | |
9548 | decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc, | |
9549 | same_dw_val_p, add_ranges, is_subrange_type, type_is_enum, | |
9550 | dbx_reg_number, is_based_loc, field_type, | |
9551 | simple_type_align_in_bits, simple_decl_align_in_bits, | |
9552 | simple_type_size_in_bits, field_byte_offset, insert_float, | |
9553 | type_tag, member_declared_type, is_redundant_typedef, | |
9554 | secname_for_decl, is_inlined_entry_point): Likewise. | |
9555 | * emit-rtl.c (const_next_insn, const_previous_insn, | |
9556 | const_next_nonnote_insn, const_prev_nonnote_insn, | |
9557 | const_next_real_insn, const_prev_real_insn, | |
9558 | const_next_active_insn, const_prev_active_insn, const_next_label, | |
9559 | const_prev_label): Likewise. | |
9560 | * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region): | |
9561 | Likewise. | |
9562 | * haifa-sched.c (may_trap_exp, haifa_classify_insn, | |
9563 | find_set_reg_weight, no_real_insns_p, find_set_reg_weight, | |
9564 | sched_insn_is_legitimate_for_speculation_p): Likewise. | |
9565 | * jump.c (reversed_comparison_code_parts, | |
9566 | reversed_comparison_code, reversed_comparison, condjump_label): | |
9567 | Likewise. | |
9568 | * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise. | |
9569 | * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned): | |
9570 | Likewise. | |
9571 | * rtl.h (const_previous_insn, const_next_insn, | |
9572 | const_prev_nonnote_insn, const_next_nonnote_insn, | |
9573 | const_prev_real_insn, const_next_real_insn, | |
9574 | const_prev_active_insn, const_next_active_insn, const_prev_label, | |
9575 | const_next_label, modified_between_p, modified_in_p, | |
9576 | const_note_storeskeep_with_call_p, condjump_label, | |
9577 | reversed_comparison, reversed_comparison_code, | |
9578 | reversed_comparison_code_parts, memory_modified_in_insn_p, | |
9579 | stack_regs_mentioned): Likewise. | |
9580 | * rtlanal.c (modified_between_p, modified_in_p, const_note_stores, | |
9581 | keep_with_call_p): Likewise. | |
9582 | * sched-deps.c (deps_may_trap_p, sched_get_condition, | |
9583 | conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list, | |
9584 | sd_lists_size, sd_lists_empty_p): Likewise. | |
9585 | * sched-int.h (sched_insns_conditions_mutex_p, | |
9586 | haifa_classify_insn, no_real_insns_p, | |
9587 | sched_insn_is_legitimate_for_speculation_p, sd_next_list, | |
9588 | sd_lists_size, sd_lists_empty_p): Likewise. | |
9589 | * sdbout.c (sdb_debug_hooks): Likewise. | |
9590 | * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt, | |
9591 | stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p, | |
9592 | -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p): | |
9593 | Likewise. | |
9594 | * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region, | |
9595 | tree_can_throw_internal): Likewise. | |
9596 | * tree-flow-inline.h (phi_nodes): Likewise. | |
9597 | * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt, | |
9598 | tree_can_throw_internal, lookup_stmt_eh_region): Likewise. | |
9599 | * tree-gimple.c (const_get_call_expr_in): Likewise. | |
9600 | * tree-gimple.h (const_get_call_expr_in): Likewise. | |
9601 | * tree.c (const_lookup_attribute, attribute_list_equal, | |
9602 | attribute_list_contained): Likewise. | |
9603 | * tree.h (attribute_list_equal, attribute_list_contained, | |
9604 | const_lookup_attribute): Likewise. | |
9605 | * vmsdbgout.c (vmsdbgout_ignore_block): Likewise. | |
9606 | ||
9607 | 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org> | |
9608 | ||
9609 | * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c, | |
9610 | tree-ssa-pre.c: Remove unnecessary trailing whitespace. | |
9611 | ||
9612 | 2007-08-26 H.J. Lu <hongjiu.lu@intel.com> | |
9613 | ||
9614 | PR target/32991 | |
9615 | * config/alpha/constraints.md: Delete "svn:mime-type" property | |
9616 | with svn propdel "svn:mime-type". | |
9617 | ||
9618 | 2007-08-26 H.J. Lu <hongjiu.lu@intel.com> | |
9619 | ||
9620 | PR middle-end/33181 | |
9621 | * ifcvt.c (noce_get_alt_condition): Make sure that the previous | |
9622 | non NOTE insn doesn't cross basic block. | |
9623 | (noce_try_abs): Likewise. | |
9624 | (noce_process_if_block): Likewise. | |
9625 | ||
9626 | 2007-08-26 David Edelsohn <edelsohn@gnu.org> | |
9627 | ||
9628 | PR target/33151 | |
9629 | * config/rs6000/predicates.md (offsettable_mem_operand): Memory | |
9630 | operand without auto-inc-dec. | |
9631 | * config/rs6000/rs6000.md (floatsidf2_internal): Use | |
9632 | offsettable_mem_operand. | |
9633 | (floatunssidf2_internal): Same. | |
9634 | (fix_truncdfsi2_internal): Same. | |
9635 | (floatsidf_ppc64): Same. | |
9636 | (floatunssidf_ppc64): Same. | |
9637 | (fix_trunctfsi2_internal): Same. | |
9638 | ||
9639 | 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org> | |
9640 | ||
9641 | PR bootstrap/30620 | |
9642 | * Makefile.in (libbackend.o): Add gcov-iov.h dependency and | |
9643 | pass defines needed for version.c. | |
9644 | ||
9645 | 2007-08-25 Joseph Myers <joseph@codesourcery.com> | |
9646 | ||
9647 | * configure.ac (--debug-prefix-map check): Change assembler | |
9648 | version presumed to have feature to 2.18. | |
9649 | * configure: Regenerate. | |
9650 | ||
9651 | 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9652 | ||
9653 | * c-common.c (vector_types_convertible_p, | |
9654 | decl_with_nonnull_addr_p, c_promoting_integer_type_p, | |
9655 | self_promoting_args_p): Constify. | |
9656 | * c-common.h (has_c_linkage, decl_with_nonnull_addr_p, | |
9657 | c_promoting_integer_type_p, self_promoting_args_p, | |
9658 | anon_aggr_type_p, vector_types_convertible_p): Likewise. | |
9659 | * c-decl.c (anon_aggr_type_p): Likewise. | |
9660 | * * c-dump.c (dump_stmt): Likewise. | |
9661 | * c-objc-common.c (has_c_linkage): Likewise. | |
9662 | * c-tree.h (same_translation_unit_p): Likewise. | |
9663 | * c-typeck.c (null_pointer_constant_p, | |
9664 | tagged_types_tu_compatible_p, function_types_compatible_p, | |
9665 | type_lists_compatible_p, lvalue_or_else, lvalue_p, | |
9666 | comptypes_internal, struct tagged_tu_seen_cache, | |
9667 | same_translation_unit_p, alloc_tagged_tu_seen_cache, | |
9668 | c_size_in_bytes): Likewise. | |
9669 | * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor, | |
9670 | hash_ptr, eq_ptr): Likewise. | |
9671 | * langhooks-def.h (lhd_decl_ok_for_sibcall, | |
9672 | LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise. | |
9673 | * langhooks.c (lhd_decl_ok_for_sibcall): Likewise. | |
9674 | * langhooks.h (ok_for_sibcall, omp_privatize_by_reference): | |
9675 | Likewise. | |
9676 | * optabs.c (optab_for_tree_code): Likewise. | |
9677 | * optabs.h (optab_for_tree_code): Likewise. | |
9678 | * rtl.h (simplify_rtx): Likewise. | |
9679 | * simplify-rtx.c (simplify_rtx): Likewise. | |
9680 | * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type, | |
9681 | dump_flag, dump_node): Likewise. | |
9682 | * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index, | |
9683 | queue_and_dump_type, dump_flag): Likewise. | |
9684 | * tree-flow.h (vect_can_force_dr_alignment_p): Likewise. | |
9685 | * tree-pass.h (dump_node): Likewise. | |
9686 | * tree-vectorizer.c (vect_can_force_dr_alignment_p, | |
9687 | supportable_narrowing_operation): Likewise. | |
9688 | * tree-vectorizer.h (vect_can_force_dr_alignment_p, | |
9689 | supportable_narrowing_operation): Likewise. | |
9690 | * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity, | |
9691 | is_negative_overflow_infinity, is_positive_overflow_infinity, | |
9692 | is_overflow_infinity, vrp_val_is_max, vrp_val_is_min, | |
9693 | nonnull_arg_p, get_value_range, vrp_operand_equal_p, | |
9694 | update_value_range, add_equivalence, ssa_name_nonnegative_p, | |
9695 | ssa_name_nonzero_p, fp_predicate): Likewise. | |
9696 | * tree.c (auto_var_in_fn_p, empty_body_p): Likewise. | |
9697 | * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p, | |
9698 | ssa_name_nonnegative_p): Likewise. | |
9699 | ||
9700 | 2007-08-25 Hans Kester <hans.kester@ellips.nl> | |
9701 | ||
9702 | * config.gcc : Add x86_64-elf target. | |
9703 | ||
9704 | 2007-08-25 Jakub Jelinek <jakub@redhat.com> | |
9705 | ||
9706 | * expr.c (store_expr): Fix order of store_by_pieces arguments. | |
9707 | ||
9708 | 2007-08-24 Sandra Loosemore <sandra@codesourcery.com> | |
9709 | Nigel Stephens <nigel@mips.com> | |
9710 | ||
9711 | PR target/11787 | |
9712 | ||
9713 | * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros. | |
9714 | (STORE_BY_PIECES_P): No longer applies to __builtin_memset. | |
9715 | * expr.c (SET_BY_PIECES_P): Define. | |
9716 | (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use | |
9717 | it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P. | |
9718 | (store_expr): Pass MEMSETP argument to can_store_by_pieces and | |
9719 | store_by_pieces. | |
9720 | * expr.h (SET_RATIO): Define. | |
9721 | (can_store_by_pieces, store_by_pieces): Update prototypes. | |
9722 | * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to | |
9723 | can_store_by_pieces/store_by_pieces. | |
9724 | (expand_builtin_memcpy_args): Likewise. | |
9725 | (expand_builtin_strncpy): Likewise. | |
9726 | (expand_builtin_memset_args): Likewise. Also remove special case | |
9727 | for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can | |
9728 | decide what to do instead. | |
9729 | * value-prof.c (tree_stringops_transform): Pass MEMSETP argument | |
9730 | to can_store_by_pieces. | |
9731 | ||
9732 | * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P. | |
9733 | * config/s390/s390.h (SET_BY_PIECES_P): Likewise. | |
9734 | ||
9735 | * config/mips/mips.opt (mmemcpy): Change from Var to Mask. | |
9736 | * config/mips/mips.c (override_options): Make -Os default to -mmemcpy. | |
9737 | * config/mips/mips.h (MIPS_CALL_RATIO): Define. | |
9738 | (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define. | |
9739 | (STORE_BY_PIECES_P): Define. | |
9740 | ||
9741 | 2007-08-24 Tom Tromey <tromey@redhat.com> | |
9742 | ||
9743 | * varpool.c (varpool_last_needed_node): Fix comment typo. | |
9744 | * c-decl.c (duplicate_decls): Fix comment typo. | |
9745 | (clone_underlying_type): Update comment. | |
9746 | ||
9747 | 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9748 | ||
9749 | * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp, | |
9750 | alpha_in_small_data_p, alpha_split_complex_arg, | |
9751 | alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK): | |
9752 | Constify. | |
9753 | * config/arm/arm-protos.h (arm_mangle_type): Likewise. | |
9754 | * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type): | |
9755 | Likewise. | |
9756 | * config/bfin/bfin.c (funkind, bfin_comp_type_attributes, | |
9757 | TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. | |
9758 | * config/darwin-protos.h (darwin_binds_local_p): Likewise. | |
9759 | * config/darwin.c (darwin_binds_local_p): Likewise. | |
9760 | * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p): | |
9761 | Likewise. | |
9762 | * config/i386/i386-protos.h (i386_pe_binds_local_p, | |
9763 | i386_pe_valid_dllimport_attribute_p): Likewise. | |
9764 | * config/i386/i386.c (ix86_function_regparm, | |
9765 | ix86_comp_type_attributes, ix86_ms_bitfield_layout_p, | |
9766 | x86_can_output_mi_thunk, ix86_mangle_type, | |
9767 | TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. | |
9768 | * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p, | |
9769 | i386_pe_binds_local_p): Likewise. | |
9770 | * config/ia64/ia64.c | |
9771 | (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, | |
9772 | ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type, | |
9773 | ia64_invalid_conversion, ia64_invalid_unary_op, | |
9774 | ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK): | |
9775 | Likewise. | |
9776 | * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise. | |
9777 | * config/m32r/m32r.c (m32r_in_small_data_p): Likewise. | |
9778 | * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. | |
9779 | * config/mips/mips.c (mips_use_blocks_for_constant_p, | |
9780 | mips_in_small_data_p, mips_use_anchors_for_symbol_p, | |
9781 | mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK, | |
9782 | mips_near_type_p, mips_far_type_p, mips_global_symbol_p, | |
9783 | mips_symbol_binds_local_p, mips_classify_symbol): Likewise. | |
9784 | * config/pa/pa.c (pa_commutative_p): Likewise. | |
9785 | * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p): | |
9786 | Likewise. | |
9787 | * config/rs6000/rs6000.c (rs6000_invalid_within_doloop, | |
9788 | rs6000_ms_bitfield_layout_p, rs6000_mangle_type, | |
9789 | rs6000_use_blocks_for_constant_p, | |
9790 | rs6000_vector_alignment_reachable, rs6000_is_opaque_type, | |
9791 | invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK, | |
9792 | TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise. | |
9793 | * config/s390/s390.c (s390_mangle_type, | |
9794 | TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP): | |
9795 | Likewise. | |
9796 | * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK, | |
9797 | th_in_small_data_p): Likewise. | |
9798 | * config/sh/sh.c (sh_ms_bitfield_layout_p, | |
9799 | sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK): | |
9800 | Likewise. | |
9801 | * config/sparc/sparc.c (sparc_can_output_mi_thunk, | |
9802 | sparc_mangle_type): Likewise. | |
9803 | * config/spu/spu.c (spu_vector_alignment_reachable): Likewise. | |
9804 | * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise. | |
9805 | * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq): | |
9806 | Likewise. | |
9807 | * hooks.c (hook_bool_mode_const_rtx_false, | |
9808 | hook_bool_mode_const_rtx_true, | |
9809 | hook_bool_const_tree_hwi_hwi_const_tree_false, | |
9810 | hook_bool_const_tree_hwi_hwi_const_tree_true, | |
9811 | hook_int_const_tree_0, hook_int_const_tree_const_tree_1, | |
9812 | hook_constcharptr_const_tree_null, | |
9813 | hook_constcharptr_const_rtx_null, | |
9814 | hook_constcharptr_const_tree_const_tree_null, | |
9815 | hook_constcharptr_int_const_tree_null, | |
9816 | hook_constcharptr_int_const_tree_const_tree_null): New. | |
9817 | (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, | |
9818 | hook_bool_tree_hwi_hwi_tree_false, | |
9819 | hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, | |
9820 | hook_int_tree_tree_1, hook_constcharptr_tree_null, | |
9821 | hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, | |
9822 | hook_constcharptr_int_tree_null, | |
9823 | hook_constcharptr_int_tree_tree_null): Delete. | |
9824 | (default_can_output_mi_thunk_no_vcall): Constify. | |
9825 | * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, | |
9826 | hook_bool_tree_hwi_hwi_tree_false, | |
9827 | hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, | |
9828 | hook_int_tree_tree_1, hook_constcharptr_tree_null, | |
9829 | hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, | |
9830 | hook_constcharptr_int_tree_null, | |
9831 | hook_constcharptr_int_tree_tree_null): Delete. | |
9832 | (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true, | |
9833 | hook_bool_const_tree_hwi_hwi_const_tree_false, | |
9834 | hook_bool_const_tree_hwi_hwi_const_tree_true, | |
9835 | hook_int_const_tree_0, hook_int_const_tree_const_tree_1, | |
9836 | hook_constcharptr_const_tree_null, | |
9837 | hook_constcharptr_const_rtx_null, | |
9838 | hook_constcharptr_const_tree_const_tree_null, | |
9839 | hook_constcharptr_int_const_tree_null, | |
9840 | hook_constcharptr_int_const_tree_const_tree_null): New. | |
9841 | (default_can_output_mi_thunk_no_vcall): Constify. | |
9842 | * integrate.c (function_attribute_inlinable_p): Likewise. | |
9843 | * integrate.h (function_attribute_inlinable_p): Likewise. | |
9844 | * jump.c (rtx_renumbered_equal_p): Likewise. | |
9845 | * output.h (decl_readonly_section, categorize_decl_for_section, | |
9846 | default_use_anchors_for_symbol_p, default_binds_local_p, | |
9847 | default_binds_local_p_1): Likewise. | |
9848 | * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model): | |
9849 | Likewise. | |
9850 | * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK, | |
9851 | TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P, | |
9852 | TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P, | |
9853 | TARGET_COMP_TYPE_ATTRIBUTES, | |
9854 | TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, | |
9855 | TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE, | |
9856 | TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION, | |
9857 | TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP, | |
9858 | TARGET_DWARF_CALLING_CONVENTION): Likewise. | |
9859 | * target.h (can_output_mi_thunk, needs_block_p, | |
9860 | first_cycle_multipass_dfa_lookahead_guard_spec, | |
9861 | vector_alignment_reachable, comp_type_attributes, | |
9862 | function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type, | |
9863 | commutative_p, use_blocks_for_constant_p, | |
9864 | use_anchors_for_symbol_p, in_small_data_p, binds_local_p, | |
9865 | vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook, | |
9866 | invalid_within_doloop, valid_dllimport_attribute_p, | |
9867 | split_complex_arg, invalid_arg_for_unprototyped_fn, | |
9868 | invalid_conversion, invalid_unary_op, invalid_binary_op): | |
9869 | Likewise. | |
9870 | * targhooks.c (default_invalid_within_doloop, | |
9871 | hook_invalid_arg_for_unprototyped_fn, | |
9872 | default_builtin_vector_alignment_reachable): Likewise. | |
9873 | (hook_bool_rtx_commutative_p): Delete. | |
9874 | (hook_bool_const_rtx_commutative_p): New. | |
9875 | * targhooks.h (default_invalid_within_doloop, | |
9876 | default_builtin_vector_alignment_reachable, | |
9877 | hook_invalid_arg_for_unprototyped_fn): Constify. | |
9878 | (hook_bool_rtx_commutative_p): Delete. | |
9879 | (hook_bool_const_rtx_commutative_p): New. | |
9880 | * varasm.c (bss_initializer_p, decl_default_tls_model, | |
9881 | categorize_decl_for_section, decl_readonly_section, | |
9882 | default_use_anchors_for_symbol_p, default_binds_local_p, | |
9883 | default_binds_local_p_1): Constify. | |
9884 | ||
9885 | 2007-08-24 Jie Zhang <jie.zhang@analog.com> | |
9886 | ||
9887 | * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define | |
9888 | __NO_BUILTIN if -fno-builtin. | |
9889 | ||
9890 | 2007-08-24 Jie Zhang <jie.zhang@analog.com> | |
9891 | ||
9892 | * config/bfin/bfin.c (print_operand): Report error instead of | |
9893 | ICE for wrong operand. | |
9894 | ||
9895 | 2007-08-24 Michael Matz <matz@suse.de> | |
9896 | ||
9897 | * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst). | |
9898 | ||
9899 | 2007-08-24 Richard Guenther <rguenther@suse.de> | |
9900 | ||
9901 | PR middle-end/33166 | |
9902 | * tree-ssa.c (useless_type_conversion_p): Split into a | |
9903 | recursive and a non-recursive part. | |
9904 | (useless_type_conversion_p_1): New function. | |
9905 | * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result | |
9906 | from maybe_fold_offset_to_reference is trivially convertible | |
9907 | to the desired type before doing the simplification. | |
9908 | ||
9909 | 2007-08-24 Jakub Jelinek <jakub@redhat.com> | |
9910 | ||
9911 | * expr.c (store_expr): Optimize initialization of an array | |
9912 | with STRING_CST. | |
9913 | * expr.h (builtin_strncpy_read_str): New prototype. | |
9914 | * builtins.c (builtin_strncpy_read_str): Remove prototype. | |
9915 | No longer static. | |
9916 | ||
9917 | 2007-08-24 Uros Bizjak <ubizjak@gmail.com> | |
9918 | ||
9919 | PR middle-end/33157 | |
9920 | * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest | |
9921 | field when initializing if_info structure. | |
9922 | ||
9923 | 2007-08-24 Richard Guenther <rguenther@suse.de> | |
9924 | ||
9925 | * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H) | |
9926 | dependencies. | |
9927 | * c-objc-common.c (c_cannot_inline_tree_fn): Remove. | |
9928 | * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise. | |
9929 | * tree-inline.c (inlinable_function_p): Fold in common parts of | |
9930 | the cannot_inline_tree_fn langhook. | |
9931 | * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove. | |
9932 | (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise. | |
9933 | (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for | |
9934 | cannot_inline_tree_fn langhook. | |
9935 | * langhooks.h (struct lang_hooks_for_tree_inlining): Remove | |
9936 | cannot_inline_tree_fn member. | |
9937 | ||
9938 | 2007-08-24 Richard Guenther <rguenther@suse.de> | |
9939 | ||
9940 | * expr.c (get_inner_reference): Do computation of bitoffset | |
9941 | from offset in a way we can detect overflow reliably. | |
9942 | ||
9943 | 2007-08-24 Jie Zhang <jie.zhang@analog.com> | |
9944 | ||
9945 | * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc. | |
9946 | ||
9947 | 2007-08-24 Jie Zhang <jie.zhang@analog.com> | |
9948 | ||
9949 | * config/bfin/bfin.opt (mfast-fp): Add. | |
9950 | * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let | |
9951 | libbffastfp override libgcc if -mfast-fp. | |
9952 | * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
9953 | * doc/invoke.texi (Option Summary): Mention -mfast-fp. | |
9954 | (Blackfin Options): Document -mfast-fp. | |
9955 | ||
9956 | 2007-08-24 Jakub Jelinek <jakub@redhat.com> | |
9957 | ||
9958 | PR tree-optimization/32573 | |
9959 | PR middle-end/32946 | |
9960 | * tree-data-ref.c (initialize_data_dependence_relation): Clear | |
9961 | DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning. | |
9962 | (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it. | |
9963 | (build_classic_dist_vector): Return false rather than true if | |
9964 | DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false | |
9965 | if either subscript_dependence_tester_1 or build_classic_dist_vector_1 | |
9966 | returned false. Don't call save_dist_v before calling | |
9967 | build_classic_dist_vector_1. | |
9968 | (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS | |
9969 | with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or | |
9970 | DDR_DIR_VECTS vectors. | |
9971 | ||
9972 | 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com> | |
9973 | ||
9974 | * configure.ac (leb128): Modify sed statement to work with any | |
9975 | binutils version string. | |
9976 | * configure: Regenerate | |
9977 | ||
9978 | 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
9979 | ||
9980 | * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg): | |
9981 | Wrap in RTX_CODE macro guard. | |
9982 | * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p, | |
9983 | arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport, | |
9984 | arm_mark_dllimport, arm_pe_encode_section_info, | |
9985 | arm_pe_unique_section): Use ISO-C function declarations. | |
9986 | * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION, | |
9987 | c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE, | |
9988 | c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored): | |
9989 | Likewise. | |
9990 | * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning. | |
9991 | * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before | |
9992 | defining. | |
9993 | * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format | |
9994 | warnings. | |
9995 | * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise. | |
9996 | * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise. | |
9997 | (register_move_cost): Use ISO-C function declarations. | |
9998 | * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings. | |
9999 | * config/score/score-protos.h (score_declare_object): Add | |
10000 | ATTRIBUTE_PRINTF_4. | |
10001 | * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format | |
10002 | warnings. | |
10003 | * final.c (profile_function): Avoid empty if-bodies. | |
10004 | ||
10005 | ||
10006 | * calls.c (must_pass_in_stack_var_size, | |
10007 | must_pass_in_stack_var_size_or_pad): Constify. | |
10008 | * config/alpha/alpha-protos.h (function_value): Likewise. | |
10009 | * config/alpha/alpha.c (alpha_return_in_memory, | |
10010 | alpha_pass_by_reference, function_value, | |
10011 | unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS, | |
10012 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): | |
10013 | Likewise. | |
10014 | * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference, | |
10015 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10016 | TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10017 | * config/arm/arm-protos.h (arm_return_in_memory, | |
10018 | arm_pad_arg_upward, arm_function_value): Likewise. | |
10019 | * config/arm/arm.c (arm_pass_by_reference, | |
10020 | arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack, | |
10021 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10022 | arm_function_value, arm_return_in_memory, arm_pad_arg_upward): | |
10023 | Likewise. | |
10024 | * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise. | |
10025 | * config/avr/avr-protos.h (avr_function_value): Likewise. | |
10026 | * config/avr/avr.c (avr_return_in_memory, | |
10027 | gas_output_limited_string, gas_output_ascii, avr_function_value, | |
10028 | avr_return_in_memory): Likewise. | |
10029 | * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise. | |
10030 | * config/bfin/bfin.c (bfin_pass_by_reference, | |
10031 | bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES, | |
10032 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): | |
10033 | Likewise. | |
10034 | * config/cris/cris.c (cris_pass_by_reference, | |
10035 | TARGET_PROMOTE_FUNCTION_ARGS): Likewise. | |
10036 | * config/crx/crx.c (crx_return_in_memory): Likewise. | |
10037 | * config/darwin.c (function_base, machopic_function_base_name): | |
10038 | Likewise. | |
10039 | * config/fr30/fr30.c (fr30_must_pass_in_stack, | |
10040 | TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10041 | * config/frv/frv.c (frv_must_pass_in_stack): Likewise. | |
10042 | * config/h8300/h8300.c (h8300_return_in_memory): Likewise. | |
10043 | * config/i386/i386-protos.h (ix86_return_in_memory, | |
10044 | ix86_sol10_return_in_memory): Likewise. | |
10045 | * config/i386/i386.c (ix86_function_value, | |
10046 | ix86_function_sseregparm, ix86_must_pass_in_stack, | |
10047 | type_natural_mode, classify_argument, examine_argument, | |
10048 | construct_container, ix86_pass_by_reference, function_value_32, | |
10049 | function_value_64, ix86_function_value_1, return_in_memory_32, | |
10050 | return_in_memory_64, return_in_memory_ms_64, | |
10051 | ix86_return_in_memory, ix86_sol10_return_in_memory, | |
10052 | TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10053 | * config/ia64/ia64-protos.h (ia64_function_value, | |
10054 | ia64_hpux_function_arg_padding): Likewise. | |
10055 | * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory, | |
10056 | ia64_function_value, bundle_state_hash, bundle_state_eq_p, | |
10057 | ia64_hpux_function_arg_padding): Likewise. | |
10058 | * config/iq2000/iq2000-protos.h (function_arg, | |
10059 | iq2000_function_value): Likewise. | |
10060 | * config/iq2000/iq2000.c (iq2000_return_in_memory, | |
10061 | iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS, | |
10062 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, | |
10063 | function_arg, iq2000_function_value): Likewise. | |
10064 | * config/m32c/m32c-protos.h (m32c_function_value, | |
10065 | m32c_promote_function_return): Likewise. | |
10066 | * config/m32c/m32c.c (m32c_pass_by_reference, | |
10067 | m32c_promote_prototypes, m32c_promote_function_return, | |
10068 | m32c_function_value): Likewise. | |
10069 | * config/m32r/m32r.c (m32r_return_in_memory, | |
10070 | m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, | |
10071 | m32r_in_small_data_p): Likewise. | |
10072 | * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding): | |
10073 | Likewise. | |
10074 | * config/m68hc11/m68hc11.c (m68hc11_return_in_memory, | |
10075 | m68hc11_function_arg_padding): Likewise. | |
10076 | * config/m68k/m68k-protos.h (m68k_function_value): Likewise. | |
10077 | * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES, | |
10078 | m68k_function_value): Likewise. | |
10079 | * config/mcore/mcore-protos.h (mcore_num_arg_regs, | |
10080 | mcore_function_value): Likewise. | |
10081 | * config/mcore/mcore.c (handle_structs_in_regs, | |
10082 | mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, | |
10083 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, | |
10084 | mcore_num_arg_regs, mcore_function_value): Likewise. | |
10085 | * config/mips/mips-protos.h (mips_pad_arg_upward, | |
10086 | mips_function_value): Likewise. | |
10087 | * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb, | |
10088 | mips_return_in_memory, mips_pass_by_reference, mips_callee_copies, | |
10089 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10090 | TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward, | |
10091 | mips_function_value): Likewise. | |
10092 | * config/mmix/mmix-protos.h (mmix_function_outgoing_value): | |
10093 | Likewise. | |
10094 | * config/mmix/mmix.c (mmix_pass_by_reference, | |
10095 | TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value, | |
10096 | mmix_encode_section_info): Likewise. | |
10097 | * config/mn10300/mn10300-protos.h (mn10300_function_value): | |
10098 | Likewise. | |
10099 | * config/mn10300/mn10300.c (mn10300_return_in_memory, | |
10100 | mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, | |
10101 | mn10300_function_value): Likewise. | |
10102 | * config/mt/mt-protos.h (mt_function_value): Likewise. | |
10103 | * config/mt/mt.c (mt_pass_by_reference, mt_function_value, | |
10104 | mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10105 | * config/pa/pa-protos.h (function_arg_padding, function_value, | |
10106 | pa_return_in_memory): Likewise. | |
10107 | * config/pa/pa.c (pa_pass_by_reference, | |
10108 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, | |
10109 | function_arg_padding, function_value, pa_return_in_memory): | |
10110 | Likewise. | |
10111 | * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise. | |
10112 | * config/rs6000/rs6000-protos.h (rs6000_function_value, | |
10113 | function_arg_padding): Likewise. | |
10114 | * config/rs6000/rs6000.c (rs6000_return_in_memory, | |
10115 | rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, | |
10116 | rs6000_pass_by_reference, rs6000_must_pass_in_stack, | |
10117 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10118 | function_arg_padding, altivec_expand_dst_builtin, | |
10119 | altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins, | |
10120 | altivec_init_builtins, rs6000_common_init_builtins, | |
10121 | rs6000_function_value): Likewise. | |
10122 | * s390/s390-protos.h (s390_function_value): Likewise. | |
10123 | * config/s390/s390.c (s390_function_arg_size, | |
10124 | s390_pass_by_reference, s390_return_in_memory, | |
10125 | s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS, | |
10126 | TARGET_PROMOTE_FUNCTION_RETURN): Likewise. | |
10127 | * config/score/score-protos.h (score_function_value): Likewise. | |
10128 | * config/score/score.c (score_arg_partial_bytes, | |
10129 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10130 | TARGET_PROMOTE_PROTOTYPES, score_return_in_memory, | |
10131 | score_pass_by_reference, score_add_offset, score_function_value): | |
10132 | Likewise. | |
10133 | * config/sh/sh-protos.h (sh_attr_renesas_p, | |
10134 | sh_promote_prototypes): Likewise. | |
10135 | * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference, | |
10136 | sh_callee_copies, sh_promote_prototypes, shcompact_byref, | |
10137 | sh_attr_renesas_p): Likewise. | |
10138 | * config/sparc/sparc-protos.h (function_value, | |
10139 | function_arg_padding): Likewise. | |
10140 | * config/sparc/sparc.c (sparc_promote_prototypes, | |
10141 | sparc_return_in_memory, sparc_pass_by_reference, | |
10142 | TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, | |
10143 | function_arg_record_value_2, function_arg_record_value_1, | |
10144 | function_arg_record_value, function_arg_record_value, | |
10145 | function_arg_padding, function_value): Likewise. | |
10146 | * config/spu/spu-protos.h (spu_function_value): Likewise. | |
10147 | * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory, | |
10148 | spu_function_value): Likewise. | |
10149 | * config/stormy16/stormy16-protos.h (xstormy16_function_value): | |
10150 | Likewise. | |
10151 | * config/stormy16/stormy16.c (xstormy16_return_in_memory, | |
10152 | xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS, | |
10153 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): | |
10154 | Likewise. | |
10155 | * config/v850/v850.c (v850_return_in_memory, | |
10156 | v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10157 | * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise. | |
10158 | * config/xtensa/xtensa.c (xtensa_return_in_msb, | |
10159 | xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, | |
10160 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): | |
10161 | Likewise. | |
10162 | * explow.c (promote_mode, hard_function_value): Likewise. | |
10163 | * expr.h (hard_function_value, promote_mode): Likewise. | |
10164 | * function.c (aggregate_value_p): Likewise. | |
10165 | * hooks.c (hook_bool_const_tree_true): New. | |
10166 | * hooks.h (hook_bool_const_tree_true): New. | |
10167 | * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify. | |
10168 | * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS, | |
10169 | TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, | |
10170 | TARGET_RETURN_IN_MSB): Likewise. | |
10171 | * target.h (promote_function_args, promote_function_return, | |
10172 | promote_prototypes, return_in_memory, return_in_msb, | |
10173 | pass_by_reference, must_pass_in_stack, callee_copies, | |
10174 | function_value): Likewise. | |
10175 | * targhooks.c (default_return_in_memory, | |
10176 | hook_pass_by_reference_must_pass_in_stack, | |
10177 | hook_callee_copies_named, | |
10178 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, | |
10179 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, | |
10180 | default_function_value): Likewise. | |
10181 | * targhooks.h (default_return_in_memory, | |
10182 | hook_pass_by_reference_must_pass_in_stack, | |
10183 | hook_callee_copies_named, | |
10184 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, | |
10185 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, | |
10186 | default_function_value): Likewise. | |
10187 | * tree-ssa-structalias.c (const_equiv_class_label_t): New. | |
10188 | (equiv_class_label_hash, equiv_class_label_eq): Constify. | |
10189 | * tree-vectorizer.c (bb_in_loop_p): Likewise. | |
10190 | * tree.c (needs_to_live_in_memory): Likewise. | |
10191 | * tree.h (struct tree_type, needs_to_live_in_memory, | |
10192 | aggregate_value_p, must_pass_in_stack_var_size, | |
10193 | must_pass_in_stack_var_size_or_pad): Likewise. | |
10194 | * vmsdbgout.c (write_debug_addr, write_debug_delta4, | |
10195 | write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg, | |
10196 | lookup_filename): Likewise. | |
10197 | ||
10198 | 2007-08-23 Uros Bizjak <ubizjak@gmail.com> | |
10199 | ||
10200 | PR target/17390 | |
10201 | * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to | |
10202 | fake fcomi i387 instruction for !TARGET_CMOVE. | |
10203 | (ix86_expand_branch): Expand natural sequence with one jump for | |
10204 | all targets, not only TARGET_CMOVE. | |
10205 | * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split | |
10206 | pattern to implement fake fcomi sequence. Split instruction after | |
10207 | reload to correct compare sequences. | |
10208 | (*cmpfp_xf_cc): Ditto. | |
10209 | (*cmpfp_<mode>_cc): Ditto. | |
10210 | (*cmpfp_u_cc): Ditto. | |
10211 | (*cmpfp_<mode>_cc): Ditto. | |
10212 | ||
10213 | 2007-08-23 Richard Guenther <rguenther@suse.de> | |
10214 | ||
10215 | * tree-pretty-print.c (dump_generic_node): Annotate | |
10216 | GIMPLE_MODIFY_STMTs with volatile ops with "{v}". | |
10217 | ||
10218 | 2007-08-23 Richard Guenther <rguenther@suse.de> | |
10219 | ||
10220 | * builtins.c (expand_builtin_mathfn): Wrap argument in | |
10221 | save_expr directly instead of re-building the call. | |
10222 | (expand_builtin_mathfn_2): Likewise. | |
10223 | (expand_builtin_mathfn_3): Likewise. | |
10224 | (expand_builtin_interclass_mathfn): Likewise. | |
10225 | (expand_builtin_int_roundingfn): Set arg. | |
10226 | (expand_builtin_int_roundingfn_2): Likewise. | |
10227 | ||
10228 | 2007-08-23 Paolo Bonzini <bonzini@gnu.org> | |
10229 | ||
10230 | * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3, | |
10231 | *sse_nand<mode>3, *sse_xor<mode>3): New. | |
10232 | ||
10233 | 2007-08-23 Uros Bizjak <ubizjak@gmail.com> | |
10234 | ||
10235 | * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code. | |
10236 | * config/i386/i386.c (print_operand): Handle ';' code. Output | |
10237 | semicolon for TARGET_MACHO. | |
10238 | * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to | |
10239 | emit semicolon after 'lock' prefix. | |
10240 | (sync_double_compare_and_swap<mode>): Ditto. | |
10241 | (*sync_double_compare_and_swapdi_pic): Ditto. | |
10242 | (*sync_compare_and_swap_cc<mode>): Ditto. | |
10243 | (sync_double_compare_and_swap_cc<mode>): Ditto. | |
10244 | (*sync_double_compare_and_swap_ccdi_pic): Ditto. | |
10245 | (sync_old_add<mode>): Ditto. | |
10246 | (sync_add<mode>): Ditto. | |
10247 | (sync_sub<mode>): Ditto. | |
10248 | (sync_ior<mode>): Ditto. | |
10249 | (sync_and<mode>): Ditto. | |
10250 | (sync_xor<mode>): Ditto. | |
10251 | ||
10252 | 2007-08-22 Chao-ying Fu <fu@mips.com> | |
10253 | ||
10254 | * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes | |
10255 | in DEF_RTL_EXPR. | |
10256 | (copy_rtx): Handle CONST_FIXED. | |
10257 | (rtx_equal_p): Likewise. | |
10258 | * rtl.h (fixed_value.h): New include. | |
10259 | (rtx_def): Add a new field of fixed_value to u. | |
10260 | (XCNMPFV): Define for accessing fixed_value. | |
10261 | (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW): | |
10262 | Define. | |
10263 | * rtl.def (CONST_FIXED): New constant. | |
10264 | (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT, | |
10265 | UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG, | |
10266 | US_ASHIFT): New codes. | |
10267 | * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult, | |
10268 | us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract, | |
10269 | unsigned_fract_convert, unsigned_sat_fract): Document them. | |
10270 | * varasm.c (assemble_integer): Extend to support fixed-point constants | |
10271 | by using different machine classes. | |
10272 | (decode_addr_const): Handle FIXED_CST. | |
10273 | (const_hash_1): Likewise. | |
10274 | (compare_constant): Likewise. | |
10275 | (copy_constant): Likewise. | |
10276 | (const_rtx_hash_1): Handle CONST_FIXED. | |
10277 | (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, | |
10278 | MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, | |
10279 | MODE_VECTOR_UACCUM. | |
10280 | (initializer_constant_valid_p): Handle FIXED_CST. | |
10281 | (output_constant): Support FIXED_POINT_TYPE. | |
10282 | * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude. | |
10283 | * cse.c (hash_rtx): Support CONST_FIXED. | |
10284 | (exp_equiv_p): Likewise. | |
10285 | (cannon_reg): Likewise. | |
10286 | (fold_rtx): Likewise. | |
10287 | (equiv_constant): Likewise. | |
10288 | (cse_process_notes_1): Likewise. | |
10289 | (count_reg_usage): Likewise. | |
10290 | * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED. | |
10291 | (rtx_equal_for_cselib_p): Handle CONST_FIXED. | |
10292 | (wrap_constant): Check CONST_FIXED. | |
10293 | (cselib_hash_rtx): Support CONST_FIXED. | |
10294 | (cselib_subst_to_values): Likewise. | |
10295 | * df-scan.c (df_uses_record): Likewise. | |
10296 | * gcse.c (want_to_gcse_p): Likewise. | |
10297 | (oprs_unchanged_p): Likewise. | |
10298 | (oprs_not_set_p): Likewise. | |
10299 | (compute_transp): Likewise. | |
10300 | (extract_mentioned_regs_helper): Likewise. | |
10301 | * genemit.c (gen_exp): Likewise. | |
10302 | * local-alloc.c (equiv_init_varies_p): Likewise. | |
10303 | (contains_replace_regs): Likewise. | |
10304 | (memref_referenced_p): Likewise. | |
10305 | * loop-invariant.c (check_maybe_invariant): Likewise. | |
10306 | (hash_invariant_expr_1): Likewise. | |
10307 | (invariant_expr_equal_p): Likewise. | |
10308 | * postreload-gcse.c (oprs_unchanged_p): Likewise. | |
10309 | * regclass.c (reg_scan_mark_refs): Likewise. | |
10310 | * regrename.c (scan_rtx): Likewise. | |
10311 | * resource.c (mark_referenced_resources): Likewise. | |
10312 | (mark_set_resources): Likewise. | |
10313 | * rtlanal.c (rtx_unstable_p): Likewise. | |
10314 | (rtx_varies_p): Likewise. | |
10315 | (count_occurrences): Likewise. | |
10316 | (reg_mentioned_p): Likewise. | |
10317 | (modified_between_p): Likewise. | |
10318 | (modified_in_p): Likewise. | |
10319 | (volatile_insn_p): Likewise. | |
10320 | (volatile_refs_p): Likewise. | |
10321 | (side_effects_p): Likewise. | |
10322 | (may_trap_p_1): Likewise. | |
10323 | (inequality_comparisons_p): Likewise. | |
10324 | (computed_jump_p_1): Likewise. | |
10325 | (commutative_operand_precedence): Likewise. | |
10326 | * sched-deps.c (sched_analyze_2): Likewise. | |
10327 | * sched-vis.c (print_value): Likewise. | |
10328 | * reload.c (operands_match_p): Likewise. | |
10329 | (subst_reg_equivs): Likewise. | |
10330 | * reload1.c (eliminate_regs_1): Likewise. | |
10331 | (elimination_effects): Likewise. | |
10332 | (scan_paradoxical_subregs): Likewise. | |
10333 | * alias.c (rtx_equal_for_memref_p): Likewise. | |
10334 | * Makefile.in (RTL_BASE_H): Add fixed-value.h. | |
10335 | * emit-rtl.c (const_fixed_htab): New hash table. | |
10336 | (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed): | |
10337 | Declare. | |
10338 | (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed, | |
10339 | const_fixed_from_fixed_value): New functions. | |
10340 | (verify_rtx_sharing): Handle CONST_FIXED. | |
10341 | (copy_rtx_if_shared_1): Likewise. | |
10342 | (reset_used_flags): Likewise. | |
10343 | (set_used_flags): Likewise. | |
10344 | (copy_insn_1): Likewise. | |
10345 | (init_emit_once): Create const_fixed_htab. | |
10346 | Store fixed-point scalar and vector zero and one to const_tiny_rtx. | |
10347 | ||
10348 | 2007-08-22 Zdenek Dvorak <ook@ucw.cz> | |
10349 | ||
10350 | PR tree-optimization/32949 | |
10351 | * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p | |
10352 | before failing for ivs with non-constant step. | |
10353 | ||
10354 | 2007-08-22 Hans-Peter Nilsson <hp@axis.com> | |
10355 | ||
10356 | * doc/md.texi (Iterators): Renamed from Macros. All contents | |
10357 | changed to reflect rename of respectively define_code_macro and | |
10358 | define_mode_macro to define_code_iterator and define_mode_iterator. | |
10359 | (Mode Iterators, Code Iterators): Similar. | |
10360 | * read-rtl.c (struct iterator_group, struct iterator_traverse_data) | |
10361 | (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) | |
10362 | (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) | |
10363 | (initialize_iterators, find_iterator, check_code_iterator) | |
10364 | (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) | |
10365 | (read_mapping, read_rtx_1): Similar. | |
10366 | * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, | |
10367 | config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, | |
10368 | config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, | |
10369 | config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, | |
10370 | config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, | |
10371 | config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, | |
10372 | config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, | |
10373 | config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, | |
10374 | config/rs6000/sync.md, config/rs6000/rs6000.md, | |
10375 | config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, | |
10376 | config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, | |
10377 | config/vax/vax.md, config/bfin/bfin.md: Similar. | |
10378 | ||
10379 | 2007-08-22 David Daney <ddaney@avtrex.com> | |
10380 | ||
10381 | * doc/install.texi (Testing): Mention testing on a simulator. | |
10382 | ||
10383 | 2007-08-22 Janis Johnson <janis187@us.ibm.com> | |
10384 | ||
10385 | * config/dfp-bit.c (DFP_TO_DFP): Check for overflow. | |
10386 | ||
10387 | * doc/libgcc.texi (Decimal float library routines): Fix formatting | |
10388 | and rearrange floating point conversion functions into different | |
10389 | categories. | |
10390 | ||
10391 | 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com> | |
10392 | ||
10393 | * target.h (struct gcc_target.sched: dfa_pre_advance_cycle, | |
10394 | dfa_post_advance_cycle): New scheduler hooks. | |
10395 | * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, | |
10396 | TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize | |
10397 | new hooks. | |
10398 | (TARGET_SCHED): Use them. | |
10399 | * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, | |
10400 | TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks. | |
10401 | * haifa-sched.c (advance_one_cycle): Invoke new hooks. | |
10402 | ||
10403 | * genautomata.c (insn_has_dfa_reservation_p): New DFA interface | |
10404 | function to facilitate debugging. | |
10405 | (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro. | |
10406 | (output_insn_has_dfa_reservation_p): New static function to output | |
10407 | insn_has_dfa_reservation_p (). | |
10408 | (write_automata): Use it. | |
10409 | * genattr.c (main): Output declaration for | |
10410 | insn_has_dfa_reservation_p (). | |
10411 | ||
10412 | 2007-08-22 Christian Bruel <christian.bruel@st.com> | |
10413 | Richard Guenther <rguenther@suse.de> | |
10414 | ||
10415 | * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only. | |
10416 | * simplify_rtx (simplify_binary_operation_1): Likewise. | |
10417 | ||
10418 | 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
10419 | ||
10420 | PR rtl-optimization/32557 | |
10421 | * df-problems.c (df_note_bb_compute): Use mws->start_regno instead | |
10422 | of REGNO (mws->mw_reg). | |
10423 | ||
10424 | 2007-08-22 Richard Guenther <rguenther@suse.de> | |
10425 | ||
10426 | PR middle-end/33007 | |
10427 | * builtins.c (expand_builtin_int_roundingfn): Replace call | |
10428 | argument wrapped with SAVE_EXPR directly. | |
10429 | (expand_builtin_int_roundingfn_2): Likewise. | |
10430 | ||
10431 | 2007-08-22 Richard Guenther <rguenther@suse.de> | |
10432 | ||
10433 | * tree-inline.c (inlinable_function_p): Restore disregarding | |
10434 | inline limits for GNU extern inline functions. | |
10435 | ||
10436 | 2007-08-22 Richard Guenther <rguenther@suse.de> | |
10437 | ||
10438 | PR middle-end/32563 | |
10439 | * tree.c (host_integerp): Treat sizetype as signed as it is | |
10440 | sign-extended. | |
10441 | ||
10442 | 2007-08-21 Ian Lance Taylor <iant@google.com> | |
10443 | ||
10444 | PR tree-optimization/33134 | |
10445 | * tree-vrp.c (adjust_range_with_scev): Call | |
10446 | set_value_range_to_value. | |
10447 | ||
10448 | 2007-08-21 Aldy Hernandez <aldyh@redhat.com> | |
10449 | ||
10450 | * value-prof.h (gimple_remove_histogram_value): Remove duplicate | |
10451 | prototype. | |
10452 | ||
10453 | 2007-08-21 Aldy Hernandez <aldyh@redhat.com> | |
10454 | ||
10455 | * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary | |
10456 | whitespace. | |
10457 | ||
10458 | 2007-08-21 Nathan Froyd <froydnj@codesourcery.com> | |
10459 | ||
10460 | * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE | |
10461 | cases to set eight bytes at a time. | |
10462 | (expand_block_move): Likewise. | |
10463 | ||
10464 | 2007-08-21 Jakub Jelinek <jakub@redhat.com> | |
10465 | ||
10466 | PR debug/32610 | |
10467 | * dwarf2out.c (gen_decl_die): Don't call | |
10468 | gen_tagged_type_instantiation_die if decl doesn't have tagged type. | |
10469 | ||
10470 | 2007-08-21 Paul Brook <paul@codesourcery.com> | |
10471 | Nathan Sidwell <nathan@codesourcery.com> | |
10472 | Mark Mitchell <mark@codesourcery.com> | |
10473 | Joseph Myers <joseph@codesourcery.com> | |
10474 | ||
10475 | * configure.ac: Add --with-pkgversion and --with-bugurl. | |
10476 | * configure: Regenerate. | |
10477 | * doc/install.texi: Document them. | |
10478 | * version.c (version_string): Remove VERSUFFIX. | |
10479 | (VERSUFFIX): Remove. | |
10480 | (pkgversion_string): New. | |
10481 | (bug_report_url): Do not hard-code initializer. | |
10482 | * version.h (pkgversion_string): Declare. | |
10483 | * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI): | |
10484 | Define. | |
10485 | (version.o): Define PKGVERSION and BUGURL. | |
10486 | (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL. | |
10487 | (%.pod): Define BUGURL. | |
10488 | * gcc.c (process_command, main): Use pkgversion_string. | |
10489 | * toplev.c (compile_file, print_version): Likewise. | |
10490 | * protoize.c (main): Likewise. | |
10491 | * gcov.c (print_version): Likewise. Update copyright date. | |
10492 | * gcov-dump.c (print_version): Likewise. Update copyright date. | |
10493 | * mips-tdump.c (main): Likewise. Update copyright date. | |
10494 | * mips-tfile.c (main): Likewise. Update copyright date. | |
10495 | * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle. | |
10496 | * doc/bugreport.texi: Use BUGURL for bug-reporting instructions; | |
10497 | shorten description. | |
10498 | * doc/gcc.texi: Include VERSION_PACKAGE in version description. | |
10499 | * doc/gccint.texi: Likewise. | |
10500 | * doc/invoke.texi: Use BUGURL for bug-reporting instructions. | |
10501 | Update copyright date. | |
10502 | ||
10503 | 2007-08-21 Uros Bizjak <ubizjak@gmail.com> | |
10504 | ||
10505 | * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG. | |
10506 | (ix86_expand_strlensi_unroll_1): Ditto. | |
10507 | (ix86_expand_branch): Use FLAGS_REG and FPSR_REG. | |
10508 | (ix86_expand_carry_flag_compare): Update comment. | |
10509 | ||
10510 | 2007-08-21 Jakub Jelinek <jakub@redhat.com> | |
10511 | ||
10512 | PR middle-end/32912 | |
10513 | * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST. | |
10514 | (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations. | |
10515 | ||
10516 | 2007-08-21 Richard Guenther <rguenther@suse.de> | |
10517 | ||
10518 | * fold-const.c (fold_binary): Revert removing of index +p PTR folding. | |
10519 | ||
10520 | 2007-08-21 Richard Guenther <rguenther@suse.de> | |
10521 | ||
10522 | PR middle-end/33122 | |
10523 | * fold-const.c (fold_binary): Remove index +p PTR folding. | |
10524 | Fix types of POINTER_PLUS_EXPR generated by folding of | |
10525 | (PTR +p B) +p A. | |
10526 | ||
10527 | 2007-08-20 Chao-ying Fu <fu@mips.com> | |
10528 | ||
10529 | * c-common.h (enum rid): Add new enumeration values of RID_SAT, | |
10530 | RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before | |
10531 | RID_ONEWAY, so that it can be checked in declspecs_add_type. | |
10532 | (c_common_fixed_point_type_for_size): Declare. | |
10533 | * c-parser.c (reswords): Add _Fract, _Accum, and _Sat. | |
10534 | (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT. | |
10535 | (c_token_starts_declspecs): Likewise. | |
10536 | (c_parser_declspecs): Likewise. | |
10537 | (c_parser_attributes): Likewise. | |
10538 | * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum. | |
10539 | (c_declspecs): Add saturating_p. | |
10540 | * c-decl.c (build_null_declspecs): Initialize saturating_p. | |
10541 | (declspecs_add_type): Avoid using complex with _Fract, _Accum, or | |
10542 | _Sat. Handle RID_SAT. | |
10543 | Avoid using void, bool, char, int, float, double, _Decimal32, | |
10544 | _Decimal64, _Decimal128, and complex with _Sat. | |
10545 | Handle RID_FRACT and RID_ACCUM. | |
10546 | Make sure _Sat is used with _Fract or _Accum. | |
10547 | (finish_declspecs): Handle cts_fract and cts_accum. | |
10548 | * c-common.c (fixed-value.h): New include. | |
10549 | (constant_expression_warning): Handle FIXED_CST. | |
10550 | (overflow_warning): Likewise. | |
10551 | (warnings_for_convert_and_check): Likewise. | |
10552 | (c_common_fixed_point_type_for_size): New. | |
10553 | (c_common_type_for_mode): Handle fixed-point modes to | |
10554 | return various saturating/non-saturating, signed/unsigned types. | |
10555 | (c_common_signed_or_unsigned_type): Support fixed-point types. | |
10556 | (shorten_compare): Check fixed-point zero. | |
10557 | Handle FIXED_POINT_TYPE. | |
10558 | (c_common_truthvalue_conversion): Handle FIXED_CST. | |
10559 | Handle FIXED_POINT_TYPE. | |
10560 | (c_common_nodes_and_builtins): Record builtin types for fixed-point | |
10561 | types. | |
10562 | (handle_mode_attribute): Handle fixed-point modes. Need to check | |
10563 | if the signness of base type and fixed-point modes are consistent. | |
10564 | (handle_vector_size_attribute): Handle fixed-point modes. | |
10565 | (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE. | |
10566 | (warn_for_div_by_zero): Check fixed-point zero. | |
10567 | * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build | |
10568 | a common fixed-point type based on fbit, ibit, sign, and saturation. | |
10569 | (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR, | |
10570 | NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR, | |
10571 | PREDECREMENT_EXPR, and POSTDECREMENT_EXPR. | |
10572 | (convert_for_assignment): Support FIXED_POINT_TYPE. | |
10573 | (digest_init): Handle FIXED_POINT_TYPE. | |
10574 | (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR, | |
10575 | TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, | |
10576 | TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR, | |
10577 | GE_EXPR, LT_EXPR, GT_EXPR. | |
10578 | * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New. | |
10579 | (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P. | |
10580 | * target.h (gcc_target): Add fixed_point_supported_p. | |
10581 | * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT, | |
10582 | MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM. | |
10583 | (default_fixed_point_supported_p): Define. | |
10584 | * targhooks.h (default_fixed_point_supported_p): Declare. | |
10585 | * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add. | |
10586 | * doc/install.texi (Configuration): Add --enable-fixed-point. | |
10587 | * configure.ac (--enable-fixed-point): New to enable fixed-point | |
10588 | arithmetic extension to C. For mips targets, we enable it by default. | |
10589 | * configure, config.in: Regenerate. | |
10590 | ||
10591 | 2007-08-20 Pawel Sikora <pluto@pld-linux.org> | |
10592 | ||
10593 | * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation. | |
10594 | ||
10595 | 2007-08-20 David Edelsohn <edelsohn@gnu.org> | |
10596 | ||
10597 | * dwarf2out.c (text_section_used): Move declaration outside ifdef | |
10598 | DWARF2_DEBUGGING_INFO. | |
10599 | (cold_text_section_used): Same. | |
10600 | (cold_text_section): Same. | |
10601 | ||
10602 | 2007-08-20 Richard Guenther <rguenther@suse.de> | |
10603 | ||
10604 | * c-typeck.c (convert_for_assignment): Use the type of | |
10605 | the member for the initialization. | |
10606 | ||
10607 | 2007-08-20 Richard Guenther <rguenther@suse.de> | |
10608 | ||
10609 | * c-objc-common.c (c_disregard_inline_limits): Remove. | |
10610 | * c-objc-common.h (c_disregard_inline_limits): Likewise. | |
10611 | * cgraphunit.c (cgraph_process_new_functions): Call | |
10612 | disregard_inline_limits_p. | |
10613 | (cgraph_preserve_function_body_p): Likewise. | |
10614 | * ipa-inline.c (compute_inline_parameters): Likewise. | |
10615 | * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits): | |
10616 | Remove. | |
10617 | (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove. | |
10618 | (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for | |
10619 | disregard_inline_limits langhook. | |
10620 | * langhooks.c (lhd_tree_inlining_disregard_inline_limits): | |
10621 | Remove. | |
10622 | * langhooks.h (lang_hooks_for_tree_inlining): Remove | |
10623 | disregard_inline_limits langhook. | |
10624 | * tree-inline.c (disregard_inline_limits_p): New function. | |
10625 | * tree-inline.h (disregard_inline_limits_p): Declare. | |
10626 | ||
10627 | 2007-08-20 Richard Guenther <rguenther@suse.de> | |
10628 | ||
10629 | * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove. | |
10630 | (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise. | |
10631 | (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for | |
10632 | auto_var_in_fn_p langhook. | |
10633 | * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and | |
10634 | move ... | |
10635 | * tree.c (auto_var_in_fn_p): ... here. | |
10636 | (find_var_from_fn): Call auto_var_in_fn_p directly. | |
10637 | * langhooks.h (lang_hooks_for_tree_inlining): Remove | |
10638 | auto_var_in_fn_p langhook. | |
10639 | * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly. | |
10640 | (copy_body_r): Likewise. | |
10641 | (self_inlining_addr_expr): Likewise. | |
10642 | * tree.h (auto_var_in_fn_p): Declare. | |
10643 | ||
10644 | 2007-08-20 Richard Guenther <rguenther@suse.de> | |
10645 | ||
10646 | * tree.c (WALK_SUBTREE): Call walk_tree_1. | |
10647 | (walk_type_fields): Take lh parameter. | |
10648 | (walk_tree): Rename to ... | |
10649 | (walk_tree_1): ... this. Do not call the walk_subtrees | |
10650 | langhook but the now passed callback. Pass lh on recursion. | |
10651 | (walk_tree_without_duplicates): Rename to ... | |
10652 | (walk_tree_without_duplicates_1): ... this. Take lh parameter | |
10653 | and call walk_tree_1. | |
10654 | * tree.h (walk_tree_lh): New typedef. | |
10655 | (walk_tree_1): Declare. | |
10656 | (walk_tree_without_duplicates_1): Likewise. | |
10657 | (walk_tree): New define to walk_tree_1 with NULL lh parameter. | |
10658 | (walk_tree_without_duplicates): New define to | |
10659 | walk_tree_without_duplicates_1 with NULL lh parameter. | |
10660 | * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove. | |
10661 | * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees | |
10662 | langhook. | |
10663 | * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove. | |
10664 | (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. | |
10665 | (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees | |
10666 | initializer. | |
10667 | ||
10668 | 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
10669 | ||
10670 | PR middle-end/30564 | |
10671 | * tree-inline.c (optimize_inline_calls): Move the cgraph checking | |
10672 | code in front of the compacting of basic blocks. | |
10673 | Move the folding of statements inbetween the cgraph checking | |
10674 | and compacting of basic blocks. | |
10675 | ||
10676 | 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
10677 | Serge Belyshev <belyshev@depni.sinp.msu.ru> | |
10678 | ||
10679 | PR target/32522 | |
10680 | * config/alpha/alpha.c (va_list_skip_additions): Check for | |
10681 | POINTER_PLUS_EXPR in addition to PLUS_EXPR. | |
10682 | (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of | |
10683 | PLUS_EXPR when checking ap.__base. | |
10684 | (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR | |
10685 | when doing addition on pointer types. Use size_int instead of | |
10686 | build_int_cst. | |
10687 | (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of | |
10688 | ptr_type in the second operand. | |
10689 | ||
10690 | 2007-08-19 Andrew Pinski <pinskia@gmail.com> | |
10691 | ||
10692 | PR target/33115 | |
10693 | * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front. | |
10694 | ||
10695 | 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
10696 | ||
10697 | PR middle-end/32940 | |
10698 | * cfgexpand.c (expand_one_register_var): Mark pointer | |
10699 | DECL_ARTIFICIAL as REG_POINTER also. | |
10700 | * stmt.c (expand_decl): Likewise. | |
10701 | ||
10702 | 2007-08-19 Daniel Berlin <dberlin@dberlin.org> | |
10703 | ||
10704 | Fix PR 32772 | |
10705 | Fix PR 32716 | |
10706 | Fix PR 32328 | |
10707 | Fix PR 32303 | |
10708 | ||
10709 | * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call. | |
10710 | * tree-ssa-alias.c (init_transitive_clobber_worklist): Add | |
10711 | on_worklist argument and avoid adding things to worklist multiple | |
10712 | times. | |
10713 | (add_to_worklist): Ditto. | |
10714 | (mark_aliases_call_clobbered): Mark entire structure clobbered if | |
10715 | single SFT is clobbered. | |
10716 | (set_initial_properties): Ditto. | |
10717 | (compute_call_clobbered): Update for changes to function | |
10718 | arguments. | |
10719 | (create_overlap_variables_for): Always create SFT for offset 0. | |
10720 | (create_structure_vars): Handle PHI's, since we are in SSA form at | |
10721 | this point. | |
10722 | * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars. | |
10723 | * tree-ssa-operands.c (access_can_touch_variable): Don't handle | |
10724 | TARGET_MEM_REF. | |
10725 | (add_vars_for_offset): Figure out aliases from access + points-to. | |
10726 | (add_virtual_operand): Use add_vars-for_offset. | |
10727 | (get_tmr_operands): Update for NMT changes, rewrite to be correct. | |
10728 | (add_call_clobber_ops): Remove makes_clobbering_call set. | |
10729 | (get_expr_operands): Always pass through the INDIRECT_REF | |
10730 | reference. | |
10731 | * tree-ssa-structalias.c (struct constraint_graph): Remove | |
10732 | variables member. | |
10733 | Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to, | |
10734 | address_taken, pt_used, number_incoming. | |
10735 | (FIRST_ADDR_NODE): Removed. | |
10736 | (merge_graph_nodes): Remove broken code for the moment. | |
10737 | (init_graph): New function. | |
10738 | (build_pred_graph): Remove code to init_graph. | |
10739 | Add location equivalence support. | |
10740 | (struct scc_info): Rename roots to deleted. | |
10741 | (scc_visit): Ditto. | |
10742 | (init_scc_info): Ditto | |
10743 | (init_topo_info): Use graph->size. | |
10744 | (compute_topo_order): Ditto. | |
10745 | (do_da_constraint): Removed. | |
10746 | (do_sd_constraint): Remove calls to find(). | |
10747 | set_union_with_increment should always get 0 as last arg here. | |
10748 | (do_complex_constraint): Replace do_da_constraint with assert. | |
10749 | Stop calling find. | |
10750 | (struct equiv_class_label): New. | |
10751 | (pointer_equiv_class_table): Ditto. | |
10752 | (location_equiv_class_table): Ditto. | |
10753 | (equiv_class_label_hash): Ditto. | |
10754 | (equiv_class_label_eq): Ditto | |
10755 | (equiv_class_lookup): Ditto. | |
10756 | (equiv_class_ladd): Ditto. | |
10757 | (pointer_equiv_class): Ditto. | |
10758 | (location_equiv_class): Ditto. | |
10759 | (condense_visit): Rename and rewrite from label_visit to do only | |
10760 | SCC related stuff for HU. | |
10761 | (label_visit): Do HU work for HU. | |
10762 | (perform_var_substitution): Update to do HU and location | |
10763 | equivalence. | |
10764 | (free_var_substitution_info): Update to free HU and location | |
10765 | equivalence structures. */ | |
10766 | (find_equivalent_node): Update for pointer but not location | |
10767 | equivalence. | |
10768 | (unite_pointer_equivalences): New function. | |
10769 | (move_complex_constraints): Rewrite to only do moving. | |
10770 | (rewrite_constraints): Split out of move_complex_constraints. | |
10771 | (solve_graph): Use graph->size. | |
10772 | (process_constraint_1): Add from_call argument, use it. | |
10773 | Split *a = &b into two constraints. | |
10774 | (process_constraint): Use new process_constraint_1. | |
10775 | (get_constraint_for_component_ref): Handle bitmaxsize == -1 case. | |
10776 | (get_constraint_for): Handle non-pointer integers properly. | |
10777 | Remove code that used to handle structures. | |
10778 | (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling | |
10779 | with unknown addends. | |
10780 | (handle_rhs_call): New function. | |
10781 | (find_func_aliases): Use handle_rhs_call. | |
10782 | (set_uids_in_ptset): Add an assert. | |
10783 | (set_used_smts): Fix bug in not considering unified vars. | |
10784 | (compute_tbaa_pruning): Stop initing useless iteration_obstack. | |
10785 | (compute_points_to_sets): Update for other function changes. | |
10786 | (delete_points_to_sets): Ditto. | |
10787 | (ipa_pta_execute): Ditto. | |
10788 | (pass_ipa_pta): We need to update SSA after ipa_pta. | |
10789 | ||
10790 | 2007-08-19 Jan Hubicka <jh@suse.cz> | |
10791 | ||
10792 | * config/i386/i386.md: Replace "rim" and "mri" constraints by "g". | |
10793 | ||
10794 | 2007-08-19 Joseph Myers <joseph@codesourcery.com> | |
10795 | ||
10796 | * dwarf2out.c (text_section_used, cold_text_section_used, | |
10797 | cold_text_section, dwarf2out_note_section_used): New. | |
10798 | (dwarf2out_init): Initialize cold_text_section. | |
10799 | (dwarf2out_switch_text_section, dwarf2out_begin_function): Call | |
10800 | dwarf2out_note_section_used. | |
10801 | (size_of_aranges): Only count entry for text section if it was | |
10802 | used. Count entry for cold text section if it was used. | |
10803 | (output_aranges): Only output entries for text section and cold | |
10804 | text section if they were used. | |
10805 | ||
10806 | 2007-08-19 Andrew Pinski <pinskia@gmail.com> | |
10807 | ||
10808 | * tree-pretty-print.c (debug_generic_expr): Add a comment about | |
10809 | the function. | |
10810 | (debug_generic_stmt): Likewise. | |
10811 | (debug_tree_chain): Likewise. | |
10812 | ||
10813 | 2007-08-19 Dorit Nuzman <dorit@il.ibm.com> | |
10814 | ||
10815 | * tree-data-refs.c (split_constant_offset): Expose. | |
10816 | * tree-data-refs.h (split_constant_offset): Add declaration. | |
10817 | ||
10818 | * tree-vectorizer.h (dr_alignment_support): Renamed | |
10819 | dr_unaligned_software_pipeline to dr_explicit_realign_optimized. | |
10820 | Added a new value dr_explicit_realign. | |
10821 | (_stmt_vec_info): Added new fields: dr_base_address, dr_init, | |
10822 | dr_offset, dr_step, and dr_aligned_to, along with new access | |
10823 | functions for these fields: STMT_VINFO_DR_BASE_ADDRESS, | |
10824 | STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and | |
10825 | STMT_VINFO_DR_ALIGNED_TO. | |
10826 | ||
10827 | * tree-vectorizer.c (vect_supportable_dr_alignment): Add | |
10828 | documentation. | |
10829 | In case of outer-loop vectorization with non-fixed misalignment - use | |
10830 | the dr_explicit_realign scheme instead of the optimized realignment | |
10831 | scheme. | |
10832 | (new_stmt_vec_info): Initialize new fields. | |
10833 | ||
10834 | * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the | |
10835 | 'nested_in_vect_loop' case. Change verbosity level. | |
10836 | (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case. | |
10837 | Don't fail on zero step in the outer-loop for loads. | |
10838 | (vect_analyze_data_refs): Call split_constant_offset to calculate | |
10839 | base, offset and init relative to the outer-loop. | |
10840 | ||
10841 | * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused | |
10842 | BSI function argument with a new function argument - at_loop. | |
10843 | Simplify the condition that determines STEP. Takes additional argument | |
10844 | INV_P. Support outer-loop vectorization (handle the | |
10845 | nested_in_vect_loop case), including zero step in the outer-loop. Call | |
10846 | vect_create_addr_base_for_vector_ref with additional argument. | |
10847 | (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP. | |
10848 | Updated function documentation. Handle the 'nested_in_vect_loop' case. | |
10849 | Fixed and simplified calculation of step. | |
10850 | (vectorizable_store): Call vect_create_data_ref_ptr with loop instead | |
10851 | of bsi, and with additional argument. Call bump_vector_ptr with | |
10852 | additional argument. Fix typos. Handle the 'nested_in_vect_loop' case. | |
10853 | (vect_setup_realignment): Takes additional arguments INIT_ADDR and | |
10854 | DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case | |
10855 | when the realignment setup needs to take place inside the loop. | |
10856 | Support the dr_explicit_realign scheme. Allow generating the optimized | |
10857 | realignment scheme for outer-loop vectorization. Added documentation. | |
10858 | (vectorizable_load): Support the dr_explicit_realign scheme. Handle | |
10859 | the 'nested_in_vect_loop' case, including loads that are invariant in | |
10860 | the outer-loop and the realignment schemes. Handle the case when the | |
10861 | realignment setup needs to take place inside the loop. Call | |
10862 | vect_setup_realignment with additional arguments. Call | |
10863 | vect_create_data_ref_ptr with additional argument and with loop instead | |
10864 | of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI. | |
10865 | (vect_gen_niters_for_prolog_loop): Call | |
10866 | vect_create_addr_base_for_vector_ref with additional arguments. | |
10867 | (vect_create_cond_for_align_checks): Likewise. | |
10868 | (bump_vector_ptr): Updated to support the new dr_explicit_realign | |
10869 | scheme: takes additional argument bump; argument ptr_incr is now | |
10870 | optional; updated documentation. | |
10871 | (vect_init_vector): Takes additional argument (bsi). Use it, if | |
10872 | available, to insert the vector initialization. | |
10873 | (get_initial_def_for_induction): Pass additional argument in call to | |
10874 | vect_init_vector. | |
10875 | (vect_get_vec_def_for_operand): Likewise. | |
10876 | (vect_setup_realignment): Likewise. | |
10877 | (vectorizable_load): Likewise. | |
10878 | ||
10879 | 2007-08-19 Dorit Nuzman <dorit@il.ibm.com> | |
10880 | ||
10881 | * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info | |
10882 | as argument instead of struct loop. | |
10883 | (nested_in_vect_loop_p): New function. | |
10884 | (vect_relevant): Add enum values vect_used_in_outer_by_reduction and | |
10885 | vect_used_in_outer. | |
10886 | (is_loop_header_bb_p): New. Used to differentiate loop-header phis | |
10887 | from other phis in the loop. | |
10888 | (destroy_loop_vec_info): Add additional argument to declaration. | |
10889 | ||
10890 | * tree-vectorizer.c (supportable_widening_operation): Also check if | |
10891 | nested_in_vect_loop_p (don't allow changing the order in this case). | |
10892 | (vect_is_simple_reduction): Takes a loop_vec_info as argument instead | |
10893 | of struct loop. Call nested_in_vect_loop_p and don't require | |
10894 | flag_unsafe_math_optimizations if it returns true. | |
10895 | (new_stmt_vec_info): When setting def_type for phis differentiate | |
10896 | loop-header phis from other phis. | |
10897 | (bb_in_loop_p): New function. | |
10898 | (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so | |
10899 | just update their loop_vinfo. Order of BB traversal now matters - | |
10900 | call dfs_enumerate_from with bb_in_loop_p. | |
10901 | (destroy_loop_vec_info): Takes additional argument to control whether | |
10902 | stmt_vinfo of the loop stmts should be destroyed as well. | |
10903 | (vect_is_simple_reduction): Allow the "non-reduction" use of a | |
10904 | reduction stmt to be defines by a non loop-header phi. | |
10905 | (vectorize_loops): Call destroy_loop_vec_info with additional argument. | |
10906 | ||
10907 | * tree-vect-transform.c (vectorizable_reduction): Call | |
10908 | nested_in_vect_loop_p. Check for multitypes in the inner-loop. | |
10909 | (vectorizable_call): Likewise. | |
10910 | (vectorizable_conversion): Likewise. | |
10911 | (vectorizable_operation): Likewise. | |
10912 | (vectorizable_type_promotion): Likewise. | |
10913 | (vectorizable_type_demotion): Likewise. | |
10914 | (vectorizable_store): Likewise. | |
10915 | (vectorizable_live_operation): Likewise. | |
10916 | (vectorizable_reduction): Likewise. Also pass loop_info to | |
10917 | vect_is_simple_reduction instead of loop. | |
10918 | (vect_init_vector): Call nested_in_vect_loop_p. | |
10919 | (get_initial_def_for_reduction): Likewise. | |
10920 | (vect_create_epilog_for_reduction): Likewise. | |
10921 | (vect_init_vector): Check which loop to work with, in case there's an | |
10922 | inner-loop. | |
10923 | (get_initial_def_for_inducion): Extend to handle outer-loop | |
10924 | vectorization. Fix indentation. | |
10925 | (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def. | |
10926 | In the case vect_induction_def get the vector def from the induction | |
10927 | phi node, instead of calling get_initial_def_for_inducion. | |
10928 | (get_initial_def_for_reduction): Extend to handle outer-loop | |
10929 | vectorization. | |
10930 | (vect_create_epilog_for_reduction): Extend to handle outer-loop | |
10931 | vectorization. | |
10932 | (vect_transform_loop): Change assert to just skip this case. Add a | |
10933 | dump printout. | |
10934 | (vect_finish_stmt_generation): Add a couple asserts. | |
10935 | ||
10936 | (vect_estimate_min_profitable_iters): Multiply | |
10937 | cost of inner-loop stmts (in outer-loop vectorization) by estimated | |
10938 | inner-loop bound. | |
10939 | (vect_model_reduction_cost): Don't add reduction epilogue cost in case | |
10940 | this is an inner-loop reduction in outer-loop vectorization. | |
10941 | ||
10942 | * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function. | |
10943 | Same code as what used to be vect_analyze_scalar_cycles, only with | |
10944 | additional argument loop, and loop_info passed to | |
10945 | vect_is_simple_reduction instead of loop. | |
10946 | (vect_analyze_scalar_cycles): Code factored out into | |
10947 | vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest. | |
10948 | Updated documentation. | |
10949 | (analyze_operations): Check for inner-loop loop-closed exit-phis during | |
10950 | outer-loop vectorization that are live or not used in the outerloop, | |
10951 | cause this requires special handling. | |
10952 | (vect_enhance_data_refs_alignment): Don't consider versioning for | |
10953 | nested-loops. | |
10954 | (vect_analyze_data_refs): Check that there are no datarefs in the | |
10955 | inner-loop. | |
10956 | (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer | |
10957 | and vect_used_in_outer_by_reduction cases. | |
10958 | (process_use): Also consider the case of outer-loop stmt defining an | |
10959 | inner-loop stmt and vice versa. | |
10960 | (vect_analyze_loop_1): New function. | |
10961 | (vect_analyze_loop_form): Extend, to allow a restricted form of nested | |
10962 | loops. Call vect_analyze_loop_1. | |
10963 | (vect_analyze_loop): Skip (inner-)loops within outer-loops that have | |
10964 | been vectorized. Call destroy_loop_vec_info with additional argument. | |
10965 | ||
10966 | * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow | |
10967 | in the inner-loop when doing outer-loop vectorization. Add | |
10968 | documentation and printout. | |
10969 | (vect_recog_dot_prod_pattern): Likewise. Also add check for | |
10970 | GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop). | |
10971 | ||
10972 | 2007-08-18 Andrew Pinski <pinskia@gmail.com> | |
10973 | ||
10974 | * tree-affine.h (print_aff): New prototype. | |
10975 | (debug_aff): Likewise. | |
10976 | * tree-affine.c (print_aff): New function. | |
10977 | (debug_aff): Likewise. | |
10978 | ||
10979 | 2007-08-18 Paul Brook <paul@codesourcery.com> | |
10980 | Joseph Myers <joseph@codesourcery.com> | |
10981 | ||
10982 | * common.opt (-fdebug-prefix-map=): New option. | |
10983 | * opts.c: Include debug.h. | |
10984 | (common_handle_option): Handle -fdebug-prefix-map. | |
10985 | * final.c: Include ggc.h. | |
10986 | (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map, | |
10987 | remap_debug_filename): New. | |
10988 | * Makefile.in (final.o, opts.o): Update dependencies. | |
10989 | * debug.h (remap_debug_filename, add_debug_prefix_map): Declare. | |
10990 | * configure.ac: Check for assembler --debug-prefix-map support. | |
10991 | * configure, config.in: Regenerate. | |
10992 | * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP. | |
10993 | (ASM_DEBUG_SPEC): Include ASM_MAP. | |
10994 | * doc/install.texi (--with-debug-prefix-map): Document. | |
10995 | * doc/invoke.texi (-fdebug-prefix-map): Document. | |
10996 | * dbxout.c (dbxout_init, dbxout_start_source_file, | |
10997 | dbxout_source_file): Call remap_debug_filename. | |
10998 | * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file, | |
10999 | dwarf2out_start_source_file, dwarf2out_finish): Call | |
11000 | remap_debug_filename. | |
11001 | (file_table_relative_p): Do not check d->emitted_number. | |
11002 | * toplev.c (output_file_directive): Call remap_debug_filename. | |
11003 | * vmsdbgout.c (write_srccorr): Call remap_debug_filename. | |
11004 | * xcoffout.c (xcoffout_source_file): Call remap_debug_filename. | |
11005 | ||
11006 | 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11007 | ||
11008 | * loop-invariant.c (find_invariants_to_move): Add missing macro | |
11009 | argument. | |
11010 | ||
11011 | 2007-08-17 Tom Tromey <tromey@redhat.com> | |
11012 | ||
11013 | * tree.h (struct tree_label_decl): Removed old "java" fields. | |
11014 | ||
11015 | 2007-08-17 Richard Sandiford <richard@codesourcery.com> | |
11016 | Nigel Stephens <nigel@mips.com> | |
11017 | ||
11018 | * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas. | |
11019 | Treat -mno-data-in-code and -mcode-xonly as aliases for | |
11020 | -mcode-readable=no and -mcode-readable=pcrel respectively. | |
11021 | * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly. | |
11022 | (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs. | |
11023 | (MULTILIB_DIRNAMES): Update accordingly. | |
11024 | ||
11025 | 2007-08-17 H.J. Lu <hongjiu.lu@intel.com> | |
11026 | ||
11027 | * Makefile.in (version.o): Depend on $(REVISION) only if | |
11028 | REVISION_s is defined. | |
11029 | ||
11030 | 2007-08-17 Sa Liu <saliu@de.ibm.com> | |
11031 | Ulrich Weigand <uweigand@de.ibm.com> | |
11032 | ||
11033 | PR middle-end/32970 | |
11034 | * tree.c (reconstruct_complex_type): For a pointer to a vector, | |
11035 | use build_qualified_type to retain qualifiers of the base type. | |
11036 | ||
11037 | 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn> | |
11038 | ||
11039 | * config/score/score.md : Update pattern tablejump. | |
11040 | * config/score/score.c : Update score_initialize_trampoline | |
11041 | function. | |
11042 | * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro. | |
11043 | (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro. | |
11044 | * doc/contrib.texi: Add my entry. | |
11045 | ||
11046 | 2007-08-16 H.J. Lu <hongjiu.lu@intel.com> | |
11047 | ||
11048 | * Makefile.in (REVISION): New. | |
11049 | (REVISION_c): New. | |
11050 | (REVISION_s): New. | |
11051 | (version.o): Also depend on $(REVISION). Add | |
11052 | -DREVISION=$(REVISION_s). | |
11053 | ||
11054 | * version.c (version_string): Add REVISION. | |
11055 | ||
11056 | 2007-08-16 Seongbae Park <seongbae.park@gmail.com> | |
11057 | ||
11058 | * tree-eh.c (lower_try_finally_onedest): Reset the locus | |
11059 | of GOTO that's relocated to a different block. | |
11060 | ||
11061 | 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11062 | ||
11063 | * c-common.c (const_strip_array_types): New. | |
11064 | * c-common.h (lang_missing_noreturn_ok_p): Delete. | |
11065 | (const_strip_array_types): New. | |
11066 | * c-objc-common.c (c_disregard_inline_limits, | |
11067 | c_warn_unused_global_decl): Constify. | |
11068 | * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl, | |
11069 | c_vla_type_p, c_incomplete_type_error): Likewise. | |
11070 | * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise. | |
11071 | * hooks.c (hook_bool_const_tree_false): New. | |
11072 | * hooks.h (hook_bool_const_tree_false): Likewise. | |
11073 | * langhooks-def.h (lhd_warn_unused_global_decl, | |
11074 | lhd_incomplete_type_error, lhd_expr_size, | |
11075 | lhd_tree_inlining_disregard_inline_limits, | |
11076 | lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, | |
11077 | LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify. | |
11078 | * langhooks.c (lhd_warn_unused_global_decl, | |
11079 | lhd_incomplete_type_error, | |
11080 | lhd_tree_inlining_disregard_inline_limits, | |
11081 | lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, | |
11082 | lhd_expr_size): Likewise. | |
11083 | * langhooks.h (lang_hooks_for_tree_inlining, | |
11084 | lang_hooks_for_tree_dump, lang_hooks_for_types, | |
11085 | lang_hooks_for_decls, lang_hooks): Likewise. | |
11086 | * pointer-set.c (pointer_set_t, pointer_set_create, | |
11087 | pointer_set_contains, insert_aux, pointer_set_insert, | |
11088 | pointer_set_traverse, pointer_map_t, pointer_map_create, | |
11089 | pointer_map_contains, pointer_map_insert, pointer_map_traverse): | |
11090 | Likewise. | |
11091 | * pointer-set.h (pointer_set_contains, pointer_set_insert, | |
11092 | pointer_set_traverse, pointer_map_contains, pointer_map_insert, | |
11093 | pointer_map_traverse): Likewise. | |
11094 | * predict.c (assert_is_empty): Likewise. | |
11095 | * tree-affine.c (free_name_expansion): Likewise. | |
11096 | * tree-cfg.c (edge_to_cases_cleanup): Likewise. | |
11097 | * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise. | |
11098 | * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise. | |
11099 | ||
11100 | 2007-08-16 Victor Kaplansky <victork@il.ibm.com> | |
11101 | ||
11102 | * tree-vectorizer.c (new_loop_vec_info): Initialize new | |
11103 | field. | |
11104 | (destroy_loop_vec_info): Add call to VEC_free. | |
11105 | * tree-vectorizer.h (may_alias_ddrs): Define. | |
11106 | (LOOP_VINFO_MAY_ALIAS_DDRS): Define. | |
11107 | * tree-vect-analyze.c (vect_analyze_data_ref_dependence): | |
11108 | Change reporting to dump. | |
11109 | (vect_is_duplicate_ddr): New. | |
11110 | (vect_mark_for_runtime_alias_test): New. | |
11111 | (vect_analyze_data_ref_dependences) Add call to | |
11112 | vect_mark_for_runtime_alias_test. | |
11113 | (vect_enhance_data_refs_alignment): Define local variable | |
11114 | vect_versioning_for_alias_required, don't perform | |
11115 | peeling for alignment if versioning for alias is | |
11116 | required. | |
11117 | (vect_enhance_data_refs_alignment): Use | |
11118 | PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of | |
11119 | PARAM_VECT_MAX_VERSION_CHECKS. | |
11120 | * tree-vect-transform.c | |
11121 | (vect_create_cond_for_alias_checks): New. | |
11122 | (vect_transform_loop): Add call to | |
11123 | vect_create_cond_for_alias_checks. | |
11124 | (vect_vfa_segment_size): New. | |
11125 | * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS): | |
11126 | Rename. | |
11127 | (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define. | |
11128 | * doc/invoke.texi | |
11129 | (vect-max-version-for-alignment-checks): Document. | |
11130 | (vect-max-version-for-alias-checks): Document. | |
11131 | (vect-max-version-checks): Remove. | |
11132 | ||
11133 | 2007-08-16 Uros Bizjak <ubizjak@gmail.com> | |
11134 | ||
11135 | * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on | |
11136 | the same line as the instruction for all asm dialects. | |
11137 | (*rep_movsi): Ditto. | |
11138 | (*rep_movsi_rex64): Ditto. | |
11139 | (*rep_movqi): Ditto. | |
11140 | (*rep_movqi_rex64): Ditto. | |
11141 | (*rep_stosdi_rex64): Ditto. | |
11142 | (*rep_stossi): Ditto. | |
11143 | (*rep_stossi_rex64): Ditto. | |
11144 | (*rep_stosqi): Ditto. | |
11145 | (*rep_stosqi_rex64): Ditto. | |
11146 | (*cmpstrnqi_nz_1): Ditto. | |
11147 | (*cmpstrnqi_nz_rex_1): Ditto. | |
11148 | (*cmpstrnqi_1): Ditto. | |
11149 | (*cmpstrnqi_rex_1): Ditto. | |
11150 | (*strlenqi_1): Ditto. | |
11151 | (*strlenqi_rex_1): Ditto. | |
11152 | * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock" | |
11153 | prefix on the same line as the instruction for all asm dialects. | |
11154 | (sync_double_compare_and_swap<mode>): Ditto. | |
11155 | (*sync_double_compare_and_swapdi_pic): Ditto. | |
11156 | (*sync_compare_and_swap_cc<mode>): Ditto. | |
11157 | (sync_double_compare_and_swap_cc<mode>): Ditto. | |
11158 | (*sync_double_compare_and_swap_ccdi_pic): Ditto. | |
11159 | (sync_old_add<mode>): Ditto. | |
11160 | (sync_add<mode>): Ditto. | |
11161 | (sync_sub<mode>): Ditto. | |
11162 | (sync_ior<mode>): Ditto. | |
11163 | (sync_and<mode>): Ditto. | |
11164 | (sync_xor<mode>): Ditto. | |
11165 | ||
11166 | 2007-08-16 Richard Sandiford <richard@codesourcery.com> | |
11167 | ||
11168 | PR middle-end/32897 | |
11169 | * reload.c (find_reloads): Check that the memory returned by | |
11170 | find_reloads_toplev was not the result of forcing a constant | |
11171 | to memory. | |
11172 | (find_reloads_toplev): Always use simplify_gen_subreg to get | |
11173 | the subreg of a constant. If the result is also a constant, | |
11174 | but not a legitimate one, force it into the constant pool | |
11175 | and reload its address. | |
11176 | ||
11177 | 2007-08-15 David Edelsohn <edelsohn@gnu.org> | |
11178 | ||
11179 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and | |
11180 | POPCOUNT. | |
11181 | ||
11182 | 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com> | |
11183 | ||
11184 | * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute | |
11185 | directive for the current vector ABI. | |
11186 | ||
11187 | 2007-08-15 Steve Ellcey <sje@cup.hp.com> | |
11188 | ||
11189 | PR target/32963 | |
11190 | * caller-save.c (reg_save_code): Set invalide status on restore code. | |
11191 | ||
11192 | 2007-08-15 Diego Novillo <dnovillo@google.com> | |
11193 | ||
11194 | * tree-ssa-alias.c (compute_memory_partitions): Use | |
11195 | alias_bitmap_obstack to allocate bitmaps. | |
11196 | (reset_alias_info): Factor out of init_alias_info. | |
11197 | Mark all name tags not associated to an SSA name for renaming. | |
11198 | (init_alias_info): Call it. | |
11199 | (create_name_tags): Tidy. Add comments. | |
11200 | (dump_points_to_info_for): Do not call get_mem_sym_stats_for. | |
11201 | ||
11202 | 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com> | |
11203 | ||
11204 | * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to | |
11205 | scheduler dependencies. | |
11206 | ||
11207 | 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
11208 | ||
11209 | * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for | |
11210 | "register_operand". | |
11211 | (*iorsi_1_zext): Likewise. | |
11212 | (*iorsi_1_zext_imm): Likewise. | |
11213 | * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand" | |
11214 | with "rm"/"xm" constraint. | |
11215 | (sse2_vmsqrtv2df2): Likewise. | |
11216 | ||
11217 | 2007-08-15 Jakub Jelinek <jakub@redhat.com> | |
11218 | ||
11219 | PR middle-end/33074 | |
11220 | * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for | |
11221 | REG_LIBCALL note. | |
11222 | ||
11223 | 2007-08-14 Daniel Berlin <dberlin@dberlin.org> | |
11224 | ||
11225 | * tree-pass.h (PROP_pta): Removed. | |
11226 | (TODO_rebuild_alias): New. | |
11227 | (pass_may_alias): Removed. | |
11228 | * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild | |
11229 | aliasing if we changed something. | |
11230 | * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update | |
11231 | SSA internally. | |
11232 | (pass_may_alias): Removed. | |
11233 | (create_structure_vars): Return TODO_rebuild_alias. | |
11234 | * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias. | |
11235 | * tree-sra.c (tree_sra): Only rebuild aliasing if something | |
11236 | changed. | |
11237 | (tree_sra_early): We never affect aliasing right now. | |
11238 | * tree-flow.h (compute_may_aliases): New prototype. | |
11239 | * passes.c: Remove pass_may_alias from the passes. | |
11240 | (execute_function_todo): Support TODO_rebuild_alias. | |
11241 | ||
11242 | 2007-08-14 Kai Tietz <kai.tietz@onevision.com> | |
11243 | ||
11244 | * config/i386/i386.c (legitimize_address): Move dllimported variable | |
11245 | check infront of legitimizing pic address of CONST symbols. | |
11246 | ||
11247 | 2007-08-14 Steve Ellcey <sje@cup.hp.com> | |
11248 | ||
11249 | PR tree-optimization/32941 | |
11250 | * tree-eh.c (struct leh_tf_state): Add goto_queue_map field. | |
11251 | (goto_queue_cmp): Remove. | |
11252 | (find_goto_replacement): Change search method. | |
11253 | (maybe_record_in_goto_queue): Add assert. | |
11254 | (lower_try_finally): Remove qsort call, add pointer_map_destroy call. | |
11255 | * Makefile.in (tree-eh.o): Add pointer-set.h dependency. | |
11256 | ||
11257 | 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11258 | ||
11259 | * alias.c (component_uses_parent_alias_set): Constify. | |
11260 | * alias.h (component_uses_parent_alias_set): Likewise. | |
11261 | * cfgrtl.c (print_rtl_with_bb): Likewise. | |
11262 | * double-int.c (tree_to_double_int, double_int_fits_to_tree_p, | |
11263 | mpz_get_double_int): Likewise. | |
11264 | * double-int.h (double_int_fits_to_tree_p, tree_to_double_int, | |
11265 | mpz_get_double_int): Likewise. | |
11266 | * expr.c (is_aligning_offset, undefined_operand_subword_p, | |
11267 | mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset): | |
11268 | Likewise. | |
11269 | * expr.h (safe_from_p): Likewise. | |
11270 | * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): | |
11271 | Likewise. | |
11272 | * gimplify.c (should_carry_locus_p, zero_sized_field_decl, | |
11273 | zero_sized_type, goa_lhs_expr_p): Likewise. | |
11274 | * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise. | |
11275 | * rtl.h (print_rtl_with_bb): Likewise. | |
11276 | * sched-vis.c (print_exp, print_value, print_pattern): Likewise. | |
11277 | * tree-cfg.c (const_first_stmt, const_last_stmt): New. | |
11278 | * tree-flow-inline.h (bb_stmt_list): Constify. | |
11279 | (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev, | |
11280 | cbsi_stmt): New. | |
11281 | * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last, | |
11282 | const_first_stmt, const_last_stmt): New. | |
11283 | (block_may_fallthru, empty_block_p): Constify. | |
11284 | * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY, | |
11285 | EXPR_ONLY_BODY): New. | |
11286 | (expr_first, expr_last, expr_only): Use macro for body. | |
11287 | (const_expr_first, const_expr_last, const_expr_only): New. | |
11288 | * tree-iterator.h (const_tree_stmt_iterator, ctsi_start, | |
11289 | ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next, | |
11290 | ctsi_prev, ctsi_stmt): New. | |
11291 | * tree-scalar-evolution.c (get_loop_exit_condition): Constify. | |
11292 | * tree-scalar-evolution.h (get_loop_exit_condition): Likewise. | |
11293 | * tree-ssa-loop-niter.c (loop_only_exit_p, | |
11294 | derive_constant_upper_bound): Likewise. | |
11295 | * tree-ssa-phiopt.c (empty_block_p): Likewise. | |
11296 | * tree-ssa-threadupdate.c (redirection_block_p): Likewise. | |
11297 | * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise. | |
11298 | * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise. | |
11299 | * tree-vrp.c (vrp_bitmap_equal_p): Likewise. | |
11300 | * tree.c (get_type_static_bounds): Likewise. | |
11301 | * tree.h (const_expr_first, const_expr_last, const_expr_only): New. | |
11302 | (get_type_static_bounds): Constify. | |
11303 | ||
11304 | 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
11305 | ||
11306 | PR target/30315 | |
11307 | * config/i386/i386.h (CANONICALIZE_COMPARISON): New. | |
11308 | * config/i386/i386.md (plusminus)(addsub)(SWI): New. | |
11309 | (*<addsub><mode>3_cc_overflow): New. | |
11310 | (*add<mode>3_cconly_overflow): New. | |
11311 | (*sub<mode>3_cconly_overflow): New. | |
11312 | (*<addsub>si3_zext_cc_overflow): New. | |
11313 | * config/i386/predicates.md (fcmov_comparison_operator): Accept | |
11314 | CCCmode for LTU, GTU, LEU and GEU. | |
11315 | (ix86_comparison_operator): Likewise. | |
11316 | (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode. | |
11317 | * config/i386/i386.c (put_condition_code): Support CCCmode. | |
11318 | (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS | |
11319 | or MINUS expressions. | |
11320 | ||
11321 | 2007-08-14 Andrew Pinski <pinskia@gmail.com> | |
11322 | ||
11323 | PR c/30428 | |
11324 | * c-typeck.c (build_binary_op): Disallow vector float types with | |
11325 | BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR. | |
11326 | ||
11327 | 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com> | |
11328 | ||
11329 | * sched-int.h (struct _dep): Rename field 'kind' to 'type'. | |
11330 | (DEP_KIND): Rename to DEP_TYPE. Update all uses. | |
11331 | (dep_def): New typedef. | |
11332 | (init_dep_1, sd_debug_dep): Declare functions. | |
11333 | (DEP_LINK_KIND): Rename to DEP_LINK_TYPE. | |
11334 | (debug_dep_links): Remove. | |
11335 | (struct _deps_list): New field 'n_links'. | |
11336 | (DEPS_LIST_N_LINKS): New macro. | |
11337 | (FOR_EACH_DEP_LINK): Remove. | |
11338 | (create_deps_list, free_deps_list, delete_deps_list): Remove | |
11339 | declaration. | |
11340 | (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto. | |
11341 | (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. | |
11342 | (copy_deps_list_change_con, move_dep_link): Ditto. | |
11343 | (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps' | |
11344 | and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field | |
11345 | 'dep_count'. | |
11346 | (INSN_BACK_DEPS): Remove. | |
11347 | (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS): | |
11348 | New macros. | |
11349 | (INSN_DEP_COUNT): Remove. | |
11350 | (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments. | |
11351 | (spec_info, haifa_recovery_block_was_added_during_scheduling_p): | |
11352 | Declare global variables. | |
11353 | (deps_pools_are_empty_p, sched_free_deps): Declare functions. | |
11354 | (add_forw_dep, compute_forward_dependences): Remove declarations. | |
11355 | (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto. | |
11356 | (add_back_forw_dep, delete_back_forw_dep): Ditto. | |
11357 | (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare | |
11358 | functions. | |
11359 | (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): | |
11360 | New constants. | |
11361 | (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto. | |
11362 | (sd_list_types_def): New typedef. | |
11363 | (sd_next_list): Declare function. | |
11364 | (struct _sd_iterator): New type. | |
11365 | (sd_iterator_def): New typedef. | |
11366 | (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline | |
11367 | functions. | |
11368 | (FOR_EACH_DEP): New cycle wrapper. | |
11369 | (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn): | |
11370 | Declare functions. | |
11371 | (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto. | |
11372 | (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists): | |
11373 | Ditto. | |
11374 | ||
11375 | * sched-deps.c (init_dep_1): Make global. | |
11376 | (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New | |
11377 | constants. | |
11378 | (dump_dep): New static function. | |
11379 | (dump_dep_flags): New static variable. | |
11380 | (sd_debug_dep): New function. | |
11381 | (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of | |
11382 | the list. | |
11383 | (move_dep_link): Use remove_from_deps_list (), instead of | |
11384 | detach_dep_link (). | |
11385 | (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove. | |
11386 | (dep_link_is_detached_p): New static function. | |
11387 | (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool | |
11388 | instead. | |
11389 | (dn_pool, dl_pool): New alloc_pools. | |
11390 | (dn_pool_diff, dl_pool_diff): New static variables. | |
11391 | (create_dep_node, delete_dep_node): New static function. | |
11392 | (create_deps_list): Make it static. Use alloc_pool 'dl_pool'. | |
11393 | (deps_list_empty_p): Make it static. Use 'n_links' field. | |
11394 | (deps_pools_are_empty_p): New static function. | |
11395 | (alloc_deps_list, delete_deps_list): Remove. | |
11396 | (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove. | |
11397 | (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. | |
11398 | (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead. | |
11399 | (forward_dependency_cache): Remove. | |
11400 | (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove | |
11401 | 'back' from the names. Change signature to use dep_t instead of | |
11402 | equivalent quad. | |
11403 | (add_back_dep): Ditto. Make global. | |
11404 | (check_dep_status): Rename to check_dep (). | |
11405 | (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn): | |
11406 | New functions. | |
11407 | (sd_finish_insn): Ditto. | |
11408 | (sd_find_dep_between_no_cache): New static function. | |
11409 | (sd_find_dep_between): New function. | |
11410 | (ask_dependency_caches, set_dependency_caches): New static functions. | |
11411 | (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto. | |
11412 | (add_or_update_dep_1): Separate pieces of functionality into | |
11413 | ask_dependency_caches (), update_dependency_caches (), | |
11414 | change_spec_dep_to_hard (), update_dep (). | |
11415 | (get_back_and_forw_lists): New static function. | |
11416 | (sd_add_dep): Separate setting of dependency caches into | |
11417 | set_dependency_caches (). | |
11418 | (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps): | |
11419 | New functions. | |
11420 | (sd_delete_dep): Ditto. | |
11421 | (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants. | |
11422 | (dump_lists): New static function. | |
11423 | (sd_debug_lists): New debug function. | |
11424 | (delete_all_dependences, fixup_sched_groups): Update to use | |
11425 | sd_* infrastructure. | |
11426 | (sched_analyze_2): Create data-speculative dependency only if | |
11427 | data-speculation is enabled. | |
11428 | (sched_analyze_insn): If insn cannot be speculative, make all its | |
11429 | dependencies non-speculative. | |
11430 | (sched_analyze): Use sd_init_insn (). | |
11431 | (add_forw_dep, compute_forward_dependencies): Remove. | |
11432 | (delete_dep_nodes_in_back_deps): New static function. | |
11433 | (sched_free_deps): New function. | |
11434 | (init_dependency_caches): Init alloc_pools. | |
11435 | (extend_depedency_caches): Update after removing of | |
11436 | forward_dependency_cache. | |
11437 | (free_dependency_caches): Ditto. Free alloc_pools. | |
11438 | (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove. | |
11439 | (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep): | |
11440 | Ditto. | |
11441 | (add_back_forw_dep, delete_back_forw_dep): Ditto. | |
11442 | (add_dependence): Use init_dep (). | |
11443 | (get_dep_weak_1): New static function. | |
11444 | (get_dep_weak): Move logic to get_dep_weak_1 (). | |
11445 | (dump_ds): New static function moved from haifa-sched.c: | |
11446 | debug_spec_status (). | |
11447 | (debug_ds): New debug function. | |
11448 | (check_dep_status): Rename to check_dep (). Update to check whole | |
11449 | dependencies. | |
11450 | ||
11451 | * haifa-sched.c (spec_info): Make global. | |
11452 | (added_recovery_block_p): Rename to | |
11453 | 'haifa_recovery_block_was_added_during_current_schedule_block_p'. | |
11454 | (haifa_recovery_block_was_added_during_scheduling_p): New variable. | |
11455 | (dep_cost, priority, rank_for_schedule, schedule_insn): Update | |
11456 | to use new interfaces. | |
11457 | (ok_for_early_queue_removal): Ditto. | |
11458 | (schedule_block): Initialize logical uids of insns emitted by the | |
11459 | target. | |
11460 | (sched_init): Initialize new variable. | |
11461 | (fix_inter_tick, try_ready, fix_tick_ready): Update to use new | |
11462 | interfaces. | |
11463 | (extend_global): Initialize insn data. | |
11464 | (init_h_i_d): Remove code that is now handled in sd_init_insn (). | |
11465 | (process_insn_forw_deps_be_in_spec): Change signature. Update to use | |
11466 | new interfaces. | |
11467 | (add_to_speculative_block): Update to use new interfaces. | |
11468 | (create_recovery_block): Set new variables. | |
11469 | (create_check_block_twin, fix_recovery_deps): Update to use new | |
11470 | interfaces. | |
11471 | (sched_insn_is_legitimate_for_speculation_p): New function. | |
11472 | (speculate_insn): Move checking logic to | |
11473 | sched_insn_is_legitimate_for_speculation_p (). | |
11474 | (sched_remove_insn): Finalize sched-deps information of instruction. | |
11475 | (clear_priorities, add_jump_dependencies): Update to use new | |
11476 | interfaces. | |
11477 | (debug_spec_status): Rename to dump_ds () and move to sched-deps.c. | |
11478 | ||
11479 | * sched-rgn.c (set_spec_fed, find_conditional_protection): Update | |
11480 | to use new interfaces. | |
11481 | (is_conditionally_protected, is_pfree, is_prisky) Ditto. | |
11482 | (new_ready): Try to use control speculation only if it is available. | |
11483 | (add_branch_dependences): Update to use new interfaces. | |
11484 | (compute_block_backward_dependences): Rename to | |
11485 | compute_block_dependences (). Call | |
11486 | targetm.sched.dependencies_evaluation_hook (). | |
11487 | (free_block_dependencies): New static function. | |
11488 | (debug_dependencies): Update to use new interfaces. | |
11489 | (schedule_region): Remove separate computation of forward dependencies. | |
11490 | Move call of targetm.sched.dependencies_evaluation_hook () to | |
11491 | compute_block_dependences (). Free dependencies at the end of | |
11492 | scheduling the region. | |
11493 | ||
11494 | * sched-ebb.c (earliest_block_with_similiar_load): Update to use | |
11495 | new interfaces. | |
11496 | (add_deps_for_risky_insns): Ditto. | |
11497 | (schedule_ebb): Remove separate computation of forward dependencies. | |
11498 | Free dependencies at the end of scheduling the ebb. | |
11499 | ||
11500 | * ddg.c (create_ddg_dependence): Update to use new interfaces. | |
11501 | (build_intra_loop_deps): Ditto. Remove separate computation of | |
11502 | forward dependencies. Free sched-deps dependencies. | |
11503 | ||
11504 | * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update | |
11505 | to use new interfaces. | |
11506 | (ia64_dfa_new_cycle, ia64_gen_check): Ditto. | |
11507 | ||
11508 | * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use | |
11509 | new interfaces. | |
11510 | (is_costly_group): Ditto. | |
11511 | ||
11512 | 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11513 | ||
11514 | * alias.c (rtx_equal_for_memref_p): Constify. | |
11515 | * basic-block.h (const_edge, const_basic_block): New. | |
11516 | (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p, | |
11517 | single_pred_p, single_succ_edge, single_pred_edge, single_succ, | |
11518 | single_pred, maybe_hot_bb_p, probably_cold_bb_p, | |
11519 | probably_never_executed_bb_p, edge_probability_reliable_p, | |
11520 | br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print, | |
11521 | inside_basic_block_p, control_flow_insn_p, dominated_by_p): | |
11522 | Likewise. | |
11523 | * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise. | |
11524 | * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up): | |
11525 | Likewise. | |
11526 | * cfganal.c (flow_active_insn_p, forwarder_block_p, | |
11527 | flow_nodes_print, dfs_enumerate_from): Likewise. | |
11528 | * cfgbuild.c (count_basic_blocks, inside_basic_block_p, | |
11529 | control_flow_insn_p, count_basic_blocks): Likewise. | |
11530 | * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p, | |
11531 | get_loop_body_with_size, loop_exit_edge_p): Likewise. | |
11532 | * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns, | |
11533 | average_num_loop_insns, loop_exit_edge_p, | |
11534 | just_once_each_iteration_p, can_duplicate_loop_p): Likewise. | |
11535 | * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns, | |
11536 | average_num_loop_insns, seq_cost): Likewise. | |
11537 | * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise. | |
11538 | * dominance.c (dominated_by_p): Likewise. | |
11539 | * emit-rtl.c (validate_subreg): Likewise. | |
11540 | * except.c (can_throw_internal, can_throw_external): Likewise. | |
11541 | * except.h (can_throw_internal, can_throw_external): Likewise. | |
11542 | * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p, | |
11543 | oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p, | |
11544 | compute_transp, load_killed_in_block_p, reg_killed_on_edge, | |
11545 | simple_mem, store_ops_ok, load_kills_store, find_loads, | |
11546 | store_killed_in_insn, store_killed_after, store_killed_before, | |
11547 | gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat): | |
11548 | Likewise. | |
11549 | * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok, | |
11550 | noce_mem_write_may_trap_or_fault_p): Likewise. | |
11551 | * pointer-set.c (pointer_set_contains, pointer_map_contains): | |
11552 | Likewise. | |
11553 | * pointer-set.h (pointer_set_contains, pointer_map_contains): | |
11554 | Likewise. | |
11555 | * predict.c (can_predict_insn_p, maybe_hot_bb_p, | |
11556 | probably_cold_bb_p, probably_never_executed_bb_p, | |
11557 | edge_probability_reliable_p, br_prob_note_reliable_p, | |
11558 | can_predict_insn_p): Likewise. | |
11559 | * regclass.c (reg_set_to_hard_reg_set): Likewise. | |
11560 | * resource.c (return_insn_p): Likewise. | |
11561 | * rtl.h (reg_set_between_p, reg_set_p, validate_subreg): | |
11562 | Likewise. | |
11563 | * rtlanal.c (reg_set_between_p, reg_set_p): Likewise. | |
11564 | * tracer.c (count_insns, ignore_bb_p, better_p): Likewise. | |
11565 | * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr, | |
11566 | verify_gimple_modify_stmt): Likewise. | |
11567 | * tree-chrec.c (is_not_constant_evolution, | |
11568 | is_multivariate_chrec_rec, is_multivariate_chrec, | |
11569 | chrec_contains_symbols, chrec_contains_undetermined, | |
11570 | tree_contains_chrecs, evolution_function_is_affine_multivariate_p, | |
11571 | evolution_function_is_univariate_p, avoid_arithmetics_in_type_p, | |
11572 | eq_evolutions_p, scev_direction): Likewise. | |
11573 | * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec, | |
11574 | eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols, | |
11575 | chrec_contains_symbols_defined_in_loop, | |
11576 | chrec_contains_undetermined, tree_contains_chrecs, | |
11577 | evolution_function_is_affine_multivariate_p, | |
11578 | evolution_function_is_univariate_p, chrec_zerop, | |
11579 | evolution_function_is_constant_p, evolution_function_is_affine_p, | |
11580 | evolution_function_is_affine_or_constant_p, | |
11581 | tree_does_not_contain_chrecs, chrec_type): Likewise. | |
11582 | * tree-data-ref.c (tree_fold_divides_p, | |
11583 | object_address_invariant_in_loop_p, dr_may_alias_p, | |
11584 | ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p, | |
11585 | same_access_functions, constant_access_functions, | |
11586 | access_functions_are_affine_or_constant_p, find_vertex_for_stmt): | |
11587 | Likewise. | |
11588 | * tree-flow.h (scev_direction): Likewise. | |
11589 | * tree-gimple.c (is_gimple_stmt): Likewise. | |
11590 | * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p): | |
11591 | Likewise. | |
11592 | * tree-pretty-print.c (op_prio): Likewise. | |
11593 | * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, | |
11594 | analyzable_condition, backedge_phi_arg_p): Likewise. | |
11595 | * tree-scalar-evolution.h (get_chrec_loop): Likewise. | |
11596 | * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise. | |
11597 | * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): | |
11598 | Likewise. | |
11599 | ||
11600 | 2007-08-13 Dan Hipschman <dsh@google.com> | |
11601 | ||
11602 | PR c/32953 | |
11603 | * c-format.c (check_format_arg): Move check for zero-length | |
11604 | format strings below the check for unterminated strings. | |
11605 | ||
11606 | 2007-08-13 Andrew Pinski <pinskia@gmail.com> | |
11607 | ||
11608 | PR C/30427 | |
11609 | * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float | |
11610 | types. | |
11611 | ||
11612 | 2007-08-13 Nick Clifton <nickc@redhat.com> | |
11613 | ||
11614 | * config/arm/arm_neon.h: Revert GPLv3 patch to this file. | |
11615 | ||
11616 | 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
11617 | ||
11618 | PR fortran/32860 | |
11619 | * c-format.c (gcc_gfc_length_specs): New array. | |
11620 | (gcc_gfc_char_table): Add unsigned specifier, and references to | |
11621 | the l length modifier. | |
11622 | (format_types_orig): Use the new gcc_gfc_length_specs. | |
11623 | ||
11624 | 2007-08-12 Sa Liu <saliu@de.ibm.com> | |
11625 | ||
11626 | * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note | |
11627 | and with REG_RETVAL note after split. | |
11628 | ||
11629 | 2007-08-11 David Daney <ddaney@avtrex.com> | |
11630 | ||
11631 | * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter | |
11632 | as ATTRIBUTE_UNUSED. | |
11633 | ||
11634 | 2007-08-11 David Edelsohn <edelsohn@gnu.org> | |
11635 | Segher Boessenkool <segher@kernel.crashing.org> | |
11636 | ||
11637 | * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if | |
11638 | HAVE_LOCAL_CPU_DETECT not defined. | |
11639 | ||
11640 | 2007-08-11 Jan Hubicka <jh@suse.cz> | |
11641 | ||
11642 | * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined. | |
11643 | (cgraph_process_new_functions): Honor previous value of | |
11644 | disregard_inline_limits. | |
11645 | * ipa-inline.c (compute_inline_parameters): Likewise. | |
11646 | ||
11647 | 2007-08-11 Ian Lance Taylor <iant@google.com> | |
11648 | ||
11649 | * alias.h (alias_set_type): Define new type. | |
11650 | (ALIAS_SET_MEMORY_BARRIER): Use it. | |
11651 | * rtl.h: Include alias.h. | |
11652 | (struct mem_attrs): Use alias_set_type. | |
11653 | * tree.h: Include alias.h | |
11654 | (struct tree_type): Use alias_set_type. | |
11655 | (struct tree_struct_field_tag): Likewise. | |
11656 | (struct tree_decl_common): Likewise. | |
11657 | * alias.c (struct alias_set_entry): Use alias_set_type. | |
11658 | (get_alias_set_entry, alias_set_subset_of): Likewise. | |
11659 | (alias_sets_conflict_p): Likewise. | |
11660 | (alias_sets_must_conflict_p): Likewise. | |
11661 | (objects_must_conflict_p): Likewise. | |
11662 | (get_alias_set, new_alias_set): Likewise. | |
11663 | (record_alias_subset, record_component_aliases): Likewise. | |
11664 | (varargs_set, frame_set): Change to alias_set_type. | |
11665 | (get_varargs_alias_set): Use alias_set_type. | |
11666 | (get_frame_alias_set): Likewise. | |
11667 | * builtins.c (setjmp_alias_set): Change to alias_set_type. | |
11668 | * dse.c (struct store_info): Use alias_set_type. | |
11669 | (struct read_info, struct clear_alias_mode_holder): Likewise. | |
11670 | (clear_alias_set_lookup, canon_address): Likewise. | |
11671 | (record_store, check_mem_read_rtx): Likewise. | |
11672 | (dse_record_singleton_alias_set): Likewise. | |
11673 | (dse_invalidate_singleton_alias_set): Likewise. | |
11674 | * emit-rtl.c (get_mem_attrs): Likewise. | |
11675 | (set_mem_attributes_minus_bitpos): Likewise. | |
11676 | (set_mem_alias_set): Likewise. | |
11677 | * expr.c (store_constructor_field, store_field): Likewise. | |
11678 | * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise. | |
11679 | * langhooks.c (lhd_get_alias_set): Likewise. | |
11680 | * langhooks-def.h (lhd_get_alias_set): Likewise. | |
11681 | * reload1.c (alter_reg): Likewise. | |
11682 | * tree-flow.h (struct fieldoff): Likewise. | |
11683 | * tree-ssa-alias.c (struct alias_map_d): Likewise. | |
11684 | (may_alias_p, get_smt_for, create_sft): Likewise. | |
11685 | * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise. | |
11686 | * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. | |
11687 | (merge_smts_into): Likewise. | |
11688 | * varasm.c (const_alias_set): Likewise. | |
11689 | * c-common.c (strict_aliasing_warning): Likewise. | |
11690 | (c_common_get_alias_set): Likewise. | |
11691 | * dse.h (dse_record_singleton_alias_set): Update declaration. | |
11692 | (dse_invalidate_singleton_alias_set): Likewise. | |
11693 | * emit-rtl.h (set_mem_alias_set): Likewise. | |
11694 | * c-common.h (c_common_get_alias_set): Likewise. | |
11695 | * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it. | |
11696 | * print-tree.c (print_node): Likewise. | |
11697 | * config/alpha/alpha.c (alpha_sr_alias_set): Change to | |
11698 | alias_set_type. | |
11699 | (alpha_setup_incoming_varargs): Use alias_set_type. | |
11700 | * config/i386/i386.c (setup_incoming_varargs_64): Use | |
11701 | alias_set_type. | |
11702 | (setup_incoming_varargs_ms_64): Likewise. | |
11703 | (ix86_GOT_alias_set): Likewise. | |
11704 | * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. | |
11705 | * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. | |
11706 | (set): Change to alias_set_type. | |
11707 | (get_TOC_alias_set): Use alias_set_type. | |
11708 | * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update | |
11709 | declaration. | |
11710 | * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type. | |
11711 | * config/sparc/sparc.c (sparc_sr_alias_set): Change to | |
11712 | alias_set_type. | |
11713 | (struct_value_alias_set): Likewise. | |
11714 | * Makefile.in (GTFILES): Add $(srcdir)/alias.h. | |
11715 | ||
11716 | 2007-08-11 Richard Sandiford <richard@codesourcery.com> | |
11717 | ||
11718 | * config/vxworks-dummy.h (TARGET_VXWORKS): Define. | |
11719 | * config/vxworks.h (TARGET_VXWORKS): Override. | |
11720 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define | |
11721 | "mips" if TARGET_VXWORKS. | |
11722 | ||
11723 | 2007-08-11 Richard Sandiford <richard@codesourcery.com> | |
11724 | ||
11725 | * calls.c (avoid_likely_spilled_reg): New function. | |
11726 | (expand_call): Use it. | |
11727 | ||
11728 | 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11729 | ||
11730 | * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings. | |
11731 | ||
11732 | 2007-08-10 Adam Nemet <anemet@caviumnetworks.com> | |
11733 | ||
11734 | * config/mips/predicates.md (const_call_insn_operand): Invoke | |
11735 | SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs. | |
11736 | ||
11737 | 2007-08-10 David Edelsohn <edelsohn@gnu.org> | |
11738 | ||
11739 | PR target/33042 | |
11740 | * config/rs6000/driver-rs6000.c: Include link.h. | |
11741 | Use ElfW instead of wordsize-specif typedef. | |
11742 | ||
11743 | 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
11744 | ||
11745 | * system.h (CONST_CAST): New. | |
11746 | * c-decl.c (c_make_fname_decl): Use it. | |
11747 | * c-lex.c (cb_ident, lex_string): Likewise. | |
11748 | * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. | |
11749 | * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, | |
11750 | give_switch, set_multilib_dir): Likewise. | |
11751 | * gengtype-parse.c (string_seq, typedef_name): Likewise. | |
11752 | * passes.c (execute_one_pass): Likewise. | |
11753 | * prefix.c (update_path): Likewise. | |
11754 | * pretty-print.c (pp_base_destroy_prefix): Likewise. | |
11755 | * tree.c (build_string): Likewise. | |
11756 | ||
11757 | 2007-08-10 Aldy Hernandez <aldyh@redhat.com> | |
11758 | ||
11759 | * tree-flow-inline.h (is_exec_stmt): Remove. | |
11760 | (is_label_stmt): Remove. | |
11761 | * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and | |
11762 | is_label_stmt. | |
11763 | ||
11764 | 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com> | |
11765 | ||
11766 | * lower-subreg.c (resolve_shift_zext): Don't adjust | |
11767 | src_reg_num for wordmode operands. | |
11768 | ||
11769 | 2007-08-10 Sandra Loosemore <sandra@codesourcery.com> | |
11770 | David Ung <davidu@mips.com> | |
11771 | ||
11772 | * config/mips/mips.c (TARGET_SCHED_INIT): Define. | |
11773 | (TARGET_SCHED_REORDER2): Define. | |
11774 | (mips_maybe_swap_ready): New. | |
11775 | (mips_last_74k_agen_insn): New. | |
11776 | (mips_74k_agen_init): New. | |
11777 | (mips_74k_agen_reorder): New function to group loads and stores | |
11778 | in the ready queue. | |
11779 | (mips_sched_init): New. | |
11780 | (mips_sched_reorder): Don't do initialization here. Call | |
11781 | mips_74k_agen_reorder. | |
11782 | (mips_variable_issue): Call mips_74k_agen_init. | |
11783 | ||
11784 | 2007-08-10 Aldy Hernandez <aldyh@redhat.com> | |
11785 | ||
11786 | * tree-flow-inline.h (get_filename): Remove. | |
11787 | ||
11788 | 2007-08-10 Richard Sandiford <richard@codesourcery.com> | |
11789 | ||
11790 | * config/mips/mips-protos.h (mips_address_insns): Add a boolean | |
11791 | argument. | |
11792 | (mips_fetch_insns): Delete in favor of... | |
11793 | (mips_load_store_insns): ...this new function. | |
11794 | * config/mips/mips.c (mips_address_insns): Add a boolean argument | |
11795 | to say whether multiword moves _might_ be split. | |
11796 | (mips_fetch_insns): Delete in favor of... | |
11797 | (mips_load_store_insns): ...this new function. | |
11798 | (mips_rtx_costs): Update the call to mips_address_insns. | |
11799 | (mips_address_cost): Likewise. | |
11800 | * config/mips/mips.md (length): Use mips_load_store_insns instead | |
11801 | of mips_fetch_insns. | |
11802 | * config/mips/constraints.md (R): Use mips_address_insns rather | |
11803 | than mips_fetch_insns. Assume that the move never needs to be split. | |
11804 | ||
11805 | 2007-08-09 Sandra Loosemore <sandra@codesourcery.com> | |
11806 | ||
11807 | * config/mips/mips.opt (mhard-float, msoft-float): Make these | |
11808 | control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather | |
11809 | than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT. | |
11810 | * config/mips/mips.h (mips16_hard_float): Delete. | |
11811 | (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these | |
11812 | definitions, and replace with.... | |
11813 | (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. | |
11814 | * config/mips/mips.c (mips16_hard_float): Delete. Replace | |
11815 | all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI). | |
11816 | (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments. | |
11817 | (override_options): Replace MASK_SOFT_FLOAT references with | |
11818 | MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT | |
11819 | and mips16_hard_float when TARGET_MIPS16. | |
11820 | ||
11821 | 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
11822 | ||
11823 | PR c/32796 | |
11824 | * c-typeck.c (build_binary_op): Check for non pointer types before | |
11825 | calling int_fits_type_p. | |
11826 | ||
11827 | 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
11828 | ||
11829 | PR middle-end/32813 | |
11830 | * fold-const.c (omit_one_operand): Return only the ommitted expression | |
11831 | if the result is an empty statement. | |
11832 | (pedantic_omit_one_operand): Likewise. | |
11833 | ||
11834 | 2007-08-09 Daniel Berlin <dberlin@dberlin.org> | |
11835 | ||
11836 | * c-typeck.c (readonly_error): Improve error for assignment. | |
11837 | ||
11838 | * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus | |
11839 | expression. | |
11840 | (pp_c_expression): Ditto. | |
11841 | ||
11842 | 2007-08-09 Simon Baldwin <simonb@google.com> | |
11843 | ||
11844 | * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous | |
11845 | break that was preventing simplify_associative_operation() for xor. | |
11846 | ||
11847 | 2007-08-09 Sandra Loosemore <sandra@codesourcery.com> | |
11848 | Nigel Stephens <nigel@mips.com> | |
11849 | ||
11850 | * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO): | |
11851 | Document change in interpretation of value from boolean to | |
11852 | tri-state integer. | |
11853 | * optabs.c (expand_ffs, expand_ctz): New functions to compute | |
11854 | ffs and ctz using clz. | |
11855 | (expand_unop): Call them. | |
11856 | * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its | |
11857 | result value. | |
11858 | (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. | |
11859 | * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to | |
11860 | enable the new ffs expansion on this target. | |
11861 | ||
11862 | 2007-08-09 Jan Hubicka <jh@suse.cz> | |
11863 | ||
11864 | * optabs.c (expand_widen_pattern_expr): Use optabs accestors. | |
11865 | (expand_ternary_op): Likewise. | |
11866 | (expand_vec_shift_expr): Likewise. | |
11867 | (expand_binop_directly): Likewise. | |
11868 | (expand_binop): Likewise. | |
11869 | (sign_expand_binop): Likewise. | |
11870 | (expand_twoval_unop): Likewise. | |
11871 | (expand_twoval_binop): Likewise. | |
11872 | (expand_twoval_binop_libfunc): Likewise. | |
11873 | (widen_clz): Likewise. | |
11874 | (widen_bswap): Likewise. | |
11875 | (expand_parity): Likewise. | |
11876 | (expand_unop): Likewise. | |
11877 | (expand_abs_nojump): Likewise. | |
11878 | (expand_copysign): Likewise. | |
11879 | (emit_no_conflict_block): Likewise. | |
11880 | (emit_libcall_block): Likewise. | |
11881 | (can_compare_p): Likewise. | |
11882 | (prepare_cmp_insn): Likewise. | |
11883 | (emit_cmp_and_jump_insn_1): Likewise. | |
11884 | (prepare_float_lib_cmp): Likewise. | |
11885 | (emit_conditional_add): Likewise. | |
11886 | (gen_add2_insn): Likewise. | |
11887 | (have_add2_insn): Likewise. | |
11888 | (gen_sub2_insn): Likewise. | |
11889 | (have_sub2_insn): Likewise. | |
11890 | (can_extend_p): Likewise. | |
11891 | (can_fix_p): Likewise. | |
11892 | (can_float_p): Likewise. | |
11893 | (expand_float): Likewise. | |
11894 | (expand_fix): Likewise. | |
11895 | (expand_sfix_optab): Likewise. | |
11896 | (new_optab): Likewise. | |
11897 | (new_convert_optab): Likewise. | |
11898 | (init_libfuncs): Likewise. | |
11899 | (init_interclass_conv_libfuncs): Likewise. | |
11900 | (init_intraclass_conv_libfuncs): Likewise. | |
11901 | (set_conv_libfunc): Likewise. | |
11902 | (init_optabs): Likewise. | |
11903 | (debug_optab_libfuncs): Likewise. | |
11904 | (gen_cond_trap): Likewise. | |
11905 | * optabs.h (optab_handler, convert_optab_hanlder): New. | |
11906 | * genopinit.c: Update optabs generation table. | |
11907 | * reload.c (find_reloads_address_1): Use optabs accestors. | |
11908 | * builtins.c (expand_builtin_mathfn): Likewise. | |
11909 | (expand_builtin_mathfn_2): Likewise. | |
11910 | (expand_builtin_mathfn_3): Likewise. | |
11911 | (expand_builtin_interclass_mathfn): Likewise. | |
11912 | (expand_builtin_sincos): Likewise. | |
11913 | (expand_builtin_cexpi): Likewise. | |
11914 | (expand_builtin_powi): Likewise. | |
11915 | (expand_builtin_strlen): Likewise. | |
11916 | * dojump.c (do_jump): Likewise. | |
11917 | * expr.c (convert_move): Likewise. | |
11918 | (move_by_pieces): Likewise. | |
11919 | (move_by_pieces_ninsns): Likewise. | |
11920 | (can_store_by_pieces): Likewise. | |
11921 | (store_by_pieces_1): Likewise. | |
11922 | (emit_move_via_integer): Likewise. | |
11923 | (emit_move_complex): Likewise. | |
11924 | (emit_move_ccmode): Likewise. | |
11925 | (emit_move_insn_1): Likewise. | |
11926 | (emit_single_push_insn): Likewise. | |
11927 | (store_constructor): Likewise. | |
11928 | (expand_expr_real_1): Likewise. | |
11929 | (do_store_flag): Likewise. | |
11930 | * ada/misc.c (gnat_compute_largest_alignment): Likewise. | |
11931 | (enumerate_modes): Likewise. | |
11932 | * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. | |
11933 | (supportable_widening_operation): Likewise. | |
11934 | (supportable_narrowing_operation): Likewise. | |
11935 | * expmed.c (store_bit_field_1): Likewise. | |
11936 | (extract_bit_field_1): Likewise. | |
11937 | (expand_mult_highpart_optab): Likewise. | |
11938 | (expand_smod_pow2): Likewise. | |
11939 | (expand_divmod): Likewise. | |
11940 | (emit_store_flag): Likewise. | |
11941 | * tree-vect-patterns.c | |
11942 | (vect_pattern_recog_1): Likewise. | |
11943 | * tree-ssa-loop-prefetch.c | |
11944 | (nontemporal_store_p): Likewise. | |
11945 | * tree-vect-transform.c (vect_model_reduction_cost): Likewise. | |
11946 | (vect_create_epilog_for_reduction): Likewise. | |
11947 | (vectorizable_reduction): Likewise. | |
11948 | (vectorizable_operation): Likewise. | |
11949 | (vect_strided_store_supported): Likewise. | |
11950 | (vectorizable_store): Likewise. | |
11951 | (vect_strided_load_supported): Likewise. | |
11952 | (vectorizable_load): Likewise. | |
11953 | * combine.c (simplify_comparison): Likewise. | |
11954 | * tree-vect-generic.c | |
11955 | (type_for_widest_vector_mode): Likewise. | |
11956 | (expand_vector_operations_1): Likewise. | |
11957 | * config/spu/spu.c (spu_expand_mov): Likewise. | |
11958 | (spu_emit_vector_compare): Likewise. | |
11959 | * config/rs6000/rs6000.c | |
11960 | (rs6000_emit_vector_compare): Likewise. | |
11961 | * stmt.c (add_case_node): Likewise. | |
11962 | * reload1.c (gen_reload): | |
11963 | ||
11964 | 2007-08-09 Michael Matz <matz@suse.de> | |
11965 | ||
11966 | * tree.h (fixed_zerop): Declare as taking a const_tree. | |
11967 | * tree.c (fixed_zerop): Take a const_tree. | |
11968 | ||
11969 | 2007-08-09 Ira Rosen <irar@il.ibm.com> | |
11970 | ||
11971 | * tree-vect-transform.c (vectorizable_store): Remove call to | |
11972 | copy_virtual_operands() and call mark_symbols_for_renaming() for | |
11973 | the created vector store. | |
11974 | (vect_setup_realignment): Don't call copy_virtual_operands() and | |
11975 | update_vuses_to_preheader(). | |
11976 | (vectorizable_load): Don't call copy_virtual_operands(). | |
11977 | (update_vuses_to_preheader): Remove. | |
11978 | ||
11979 | 2007-08-08 Chao-ying Fu <fu@mips.com> | |
11980 | ||
11981 | * tree.def (FIXED_POINT_TYPE): New type. | |
11982 | (FIXED_CST): New constant. | |
11983 | (FIXED_CONVERT_EXPR): New expr. | |
11984 | * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE. | |
11985 | (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR. | |
11986 | * tree.h (struct tree_base): Add saturating_flag. | |
11987 | Remove one bit of spare for saturating_flag. | |
11988 | (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE. | |
11989 | (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P, | |
11990 | FIXED_POINT_TYPE_P): Define. | |
11991 | (TYPE_SATURATING): Define. | |
11992 | (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define. | |
11993 | (struct tree_fixed_cst): New. | |
11994 | (TYPE_IBIT, TYPE_FBIT): Define. | |
11995 | (tree_node): Add fixed_cst. | |
11996 | (enum tree_index): Add new enumeration values of | |
11997 | TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE, | |
11998 | TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE, | |
11999 | TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE, | |
12000 | TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE, | |
12001 | TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE, | |
12002 | TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE, | |
12003 | TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE, | |
12004 | TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE, | |
12005 | TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE, | |
12006 | TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE, | |
12007 | TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE, | |
12008 | TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE, | |
12009 | TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE, | |
12010 | TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE, | |
12011 | TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE, | |
12012 | TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE, | |
12013 | TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE, | |
12014 | TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE. | |
12015 | (sat_short_fract_type_node, sat_fract_type_node, | |
12016 | sat_long_fract_type_node, sat_long_long_fract_type_node, | |
12017 | sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node, | |
12018 | sat_unsigned_long_fract_type_node, | |
12019 | sat_unsigned_long_long_fract_type_node, short_fract_type_node, | |
12020 | fract_type_node, long_fract_type_node, long_long_fract_type_node, | |
12021 | unsigned_short_fract_type_node, unsigned_fract_type_node, | |
12022 | unsigned_long_fract_type_node, unsigned_long_long_fract_type_node, | |
12023 | sat_short_accum_type_node, sat_accum_type_node, | |
12024 | sat_long_accum_type_node, sat_long_long_accum_type_node, | |
12025 | sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node, | |
12026 | sat_unsigned_long_accum_type_node, | |
12027 | sat_unsigned_long_long_accum_type_node, short_accum_type_node, | |
12028 | accum_type_node, long_accum_type_node, long_long_accum_type_node, | |
12029 | unsigned_short_accum_type_node, unsigned_accum_type_node, | |
12030 | unsigned_long_accum_type_node, unsigned_long_long_accum_type_node, | |
12031 | qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node, | |
12032 | uqq_type_node, uhq_type_node, usq_type_node, udq_type_node, | |
12033 | utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node, | |
12034 | sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node, | |
12035 | sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node, | |
12036 | sat_utq_type_node, ha_type_node, sa_type_node, da_type_node, | |
12037 | ta_type_node, uha_type_node, usa_type_node, uda_type_node, | |
12038 | uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node, | |
12039 | sat_ta_type_node, sat_uha_type_node, sat_usa_type_node, | |
12040 | sat_uda_type_node, sat_uta_type_node): New macro. | |
12041 | (make_fract_type, make_accum_type): Declare. | |
12042 | (make_signed_fract_type, make_unsigned_fract_type, | |
12043 | make_sat_signed_fract_type, make_sat_unsigned_fract_type, | |
12044 | make_signed_accum_type, make_unsigned_accum_type, | |
12045 | make_sat_signed_accum_type, make_sat_unsigned_accum_type, | |
12046 | make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type, | |
12047 | make_or_reuse_sat_signed_fract_type, | |
12048 | make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type, | |
12049 | make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type, | |
12050 | make_or_reuse_sat_unsigned_accum_type): New macro. | |
12051 | (fixed_zerop): Declare. | |
12052 | * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE, | |
12053 | LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, | |
12054 | SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, | |
12055 | LONG_LONG_ACCUM_TYPE_SIZE): Define. | |
12056 | * treestruct.def: Add TS_FIXED_CST. | |
12057 | * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h. | |
12058 | (tree.o): Likewise. | |
12059 | (tree-dump.o): Likewise. | |
12060 | (print-tree.o): Likewise. | |
12061 | (tree-pretty-print.o): Likewise. | |
12062 | (fold-const.o): Likewise. | |
12063 | * tree-complex.c (some_nonzerop): Handle FIXED_CST. | |
12064 | * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST. | |
12065 | (is_gimple_min_invariant): Handle FIXED_CST. | |
12066 | * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT, | |
12067 | MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, | |
12068 | MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
12069 | (layout_type): Handle FIXED_POINT_TYPE. | |
12070 | (make_fract_type, make_accum_type): New functions. | |
12071 | * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE. | |
12072 | * tree-dump.c (fixed-value.h): New include. | |
12073 | (dump_fixed): New function. | |
12074 | (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST. | |
12075 | * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE. | |
12076 | (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR. | |
12077 | * tree-pretty-print.c (fixed-value.h): New include. | |
12078 | (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and | |
12079 | FIXED_CONVERT_EXPR. | |
12080 | * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST. | |
12081 | * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST. | |
12082 | * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST. | |
12083 | * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation | |
12084 | for non-saturating fixed-point types. | |
12085 | (reassociate_bb): Likewise. | |
12086 | * emit-rtl.c (fixed-value.h): New include. | |
12087 | (fconst0, fconst1): New array. | |
12088 | (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes. | |
12089 | * tree-vect-generic.c expand_vector_operation): Support | |
12090 | MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and | |
12091 | MODE_VECTOR_UACCUM. | |
12092 | (type_for_widest_vector_mode): Add one parameter for the | |
12093 | saturating flag. | |
12094 | Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their | |
12095 | vector mode. | |
12096 | Pass the satp parameter to type_for_mode for fixed-point types. | |
12097 | (expand_vector_operations_1): Pass the saturating flag to | |
12098 | type_for_widest_vector_mode. | |
12099 | Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, | |
12100 | and MODE_VECTOR_UACCUM. | |
12101 | * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST. | |
12102 | (vectorizable_condition): Likewise. | |
12103 | * tree.c (fixed-value.h): New include. | |
12104 | (tree_code_size): Support FIXED_CST. | |
12105 | (build_fixed): New function. | |
12106 | (build_one_cst): Support FIXED_POINT_TYPE for accum types. | |
12107 | (fixed_zerop): New function. | |
12108 | (tree_node_structure): Support FIXED_CST. | |
12109 | (type_contains_placeholder_1): Support FIXED_POINT_TYPE. | |
12110 | (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE. | |
12111 | (type_hash_eq): Handle FIXED_POINT_TYPE. | |
12112 | (simple_cst_equal): Support FIXED_CST. | |
12113 | (iterative_hash_expr): Handle FIXED_CST. | |
12114 | (get_unwidened): Make sure type is not FIXED_POINT_TYPE. | |
12115 | (get_narrower): Likewise. | |
12116 | (variably_modified_type_p): Handle FIXED_POINT_TYPE. | |
12117 | (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions. | |
12118 | (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and | |
12119 | MAKE_FIXED_MODE_NODE macros to initialize fixed-point type | |
12120 | nodes. | |
12121 | (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT, | |
12122 | MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
12123 | (initializer_zerop): Support FIXED_CST. | |
12124 | (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE. | |
12125 | * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or | |
12126 | DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE. | |
12127 | (is_base_type): Handle FIXED_POINT_TYPE. | |
12128 | (add_type_attribute): Handle FIXED_POINT_TYPE. | |
12129 | (gen_type_die_with_usage): Handle FIXED_POINT_TYPE. | |
12130 | * print-tree.c (fixed-value.h): New include. | |
12131 | (print_node_brief): Support FIXED_CST. | |
12132 | (print_node): Support FIXED_POINT_TYPE and FIXED_CST. | |
12133 | * c-pretty-print.c (fixed-value.h): New include. | |
12134 | (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass | |
12135 | TYPE_SATURATING to c_common_type_for_mode for fixed-point modes. | |
12136 | (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE. | |
12137 | Support fixed-point types for inner items in VECTOR_TYPE. | |
12138 | (pp_c_direct_declarator): Likewise. | |
12139 | (pp_c_declarator): Likewise. | |
12140 | (pp_c_fixed_constant): New function. | |
12141 | (pp_c_constant): Handle FIXED_CST. | |
12142 | (pp_c_primary_expression): Likewise. | |
12143 | (pp_c_expression): Likewise. | |
12144 | * fold-const.c (fixed-value.h): New include. | |
12145 | (negate_expr_p): Return true for FIXED_CST. | |
12146 | (fold_negate_expr): Support FIXED_CST. | |
12147 | (split_tree): Support FIXED_CST. | |
12148 | (const_binop): Support FIXED_CST. | |
12149 | (fold_convert_const_int_from_fixed): New function to convert from | |
12150 | fixed to int. | |
12151 | (fold_convert_const_real_from_fixed): New function to convert from | |
12152 | fixed to real. | |
12153 | (fold_convert_const_fixed_from_fixed): New function to convert from | |
12154 | fixed to another fixed. | |
12155 | (fold_convert_const_fixed_from_int): New function to convert from | |
12156 | int to fixed. | |
12157 | (fold_convert_const_fixed_from_real): New function to convert from | |
12158 | real to fixed. | |
12159 | (fold_convert_const): Support conversions from fixed to int, from | |
12160 | fixed to real, from fixed to fixed, from int to fixed, and from real | |
12161 | to fixed. | |
12162 | (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE. | |
12163 | (operand_equal_p): Support FIXED_CST. | |
12164 | (make_range): For fixed-point modes, we need to pass the | |
12165 | saturating flag as the 2nd parameter. | |
12166 | (tree_swap_operands_p): Handle FIXED_CST. | |
12167 | (fold_plusminus_mult_expr): For fract modes, we cannot generate | |
12168 | constant 1. | |
12169 | (fold_unary): Support FIXED_CONVERT_EXPR. | |
12170 | (fold_binary): Handle FIXED_CST. | |
12171 | Make sure the type is not saturating, before associating operations. | |
12172 | Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2). | |
12173 | (tree_expr_nonnegative_warnv_p): Handle FIXED_CST. | |
12174 | (fold_negate_const): Support FIXED_CST. | |
12175 | (fold_relational_const): Support FIXED_CST. | |
12176 | * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE. | |
12177 | (gimplify_expr): Handle FIXED_CST. | |
12178 | (gimplify_type_sizes): Handle FIXED_POINT_TYPE. | |
12179 | * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST. | |
12180 | * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE. | |
12181 | * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE, | |
12182 | FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, | |
12183 | SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, | |
12184 | LONG_LONG_ACCUM_TYPE_SIZE. | |
12185 | * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE. | |
12186 | * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE. | |
12187 | * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE. | |
12188 | * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT, | |
12189 | MODE_ACCUM, and MODE_UACCUM. | |
12190 | * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating | |
12191 | fixed-point types to disable reduction. | |
12192 | * explow.c (promote_mode): Support FIXED_POINT_TYPE. | |
12193 | ||
12194 | 2007-08-08 David Edelsohn <edelsohn@gnu.org> | |
12195 | ||
12196 | * config/rs6000/x-rs6000: New file. | |
12197 | * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu. | |
12198 | * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu. | |
12199 | (EXTRA_SPEC_FUNCTIONS): Define. | |
12200 | (HAVE_LOCAL_CPU_DETECT): Define. | |
12201 | (CC1_CPU_SPEC): Define. | |
12202 | * config/rs6000/driver-rs6000.c: New file. | |
12203 | * config/rs6000/aix.h (CC1_SPEC): Define. | |
12204 | * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu. | |
12205 | * config.host: Add x-rs6000 to host_xmake_file if host and target | |
12206 | are rs6000 or powerpc. | |
12207 | ||
12208 | 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch> | |
12209 | ||
12210 | * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=. | |
12211 | ||
12212 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12213 | Sandra Loosemore <sandra@codesourcery.com> | |
12214 | Chao-ying Fu <fu@mips.com> | |
12215 | Nigel Stephens <nigel@mips.com> | |
12216 | David Ung <davidu@mips.com> | |
12217 | ||
12218 | * doc/invoke.texi (-mcode-readable): Document. | |
12219 | * config/mips/mips.opt (mcode-readable): New option. | |
12220 | * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type. | |
12221 | * config/mips/mips.h (mips_code_readable_setting): New enum. | |
12222 | (mips_code_readable): Declare. | |
12223 | (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros. | |
12224 | (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro. | |
12225 | (JUMP_TABLES_IN_TEXT_SECTION): Use it. | |
12226 | (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove | |
12227 | boiler-plate comments. | |
12228 | (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES. | |
12229 | * config/mips/mips.c (mips_code_readable): New variable. | |
12230 | (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for | |
12231 | MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the | |
12232 | context and -mcode-readable setting to restrict the use of | |
12233 | SYMBOL_PC_RELATIVE for MIPS16 constant pool references. | |
12234 | Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed. | |
12235 | (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH. | |
12236 | (mips_blocks_for_constant_p): Only return false for | |
12237 | TARGET_MIPS16_PCREL_LOADS. | |
12238 | (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions | |
12239 | for MIPS16. Handle SYMBOL_32_HIGH. | |
12240 | (mips_const_insns): Allow HIGHs for MIPS16 too. | |
12241 | (mips_unspec_address_offset): New function, split out from... | |
12242 | (mips_unspec_address): ...here. | |
12243 | (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load | |
12244 | 16-bit symbolic constants. Assert approropiate conditions for | |
12245 | using the "la" and "dla" macros. | |
12246 | (mips_handle_option): Handle -mcode-readable=. | |
12247 | (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too. | |
12248 | Set up mips_lo_relocs[SYMBOL_32_HIGH]. | |
12249 | (mips_strip_unspec_address): New function, split out from... | |
12250 | (print_operand_reloc): ...here. | |
12251 | (print_operand): Pass constants through mips_strip_unspec_address. | |
12252 | (print_operand_address): Likewise. | |
12253 | (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants. | |
12254 | (mips_select_rtx_section): Remove MIPS16 handling. | |
12255 | (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl. | |
12256 | (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC. | |
12257 | (mips16_lay_out_constants): Do nothing unless | |
12258 | TARGET_MIPS16_PCREL_LOADS. | |
12259 | (mips_avoid_hazards): Remove guard of mips16_lay_out_constants. | |
12260 | * config/mips/mips.md: Split HIGHs for MIPS16. | |
12261 | (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES. | |
12262 | ||
12263 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12264 | ||
12265 | * config/mips/mips-protos.h (mips_emit_move): Declare. | |
12266 | * config/mips/mips.c (mips_emit_move): New function. | |
12267 | (mips_force_temporary): Use mips_emit_move instead of emit_move_insn. | |
12268 | (mips_legitimize_const_move): Likewise. | |
12269 | (mips_legitimize_move): Likewise. | |
12270 | (mips_split_64bit_move): Likewise. | |
12271 | (mips_restore_gp): Likewise. | |
12272 | (mips_load_call_address): Likewise. | |
12273 | (mips_emit_fcc_reload): Likewise. | |
12274 | (mips_set_return_address): Likewise. | |
12275 | (mips_block_move_straight): Likewise. | |
12276 | (mips_block_move_loop): Likewise. | |
12277 | (mips_setup_incoming_varargs): Likewise. | |
12278 | (mips_save_reg): Likewise. | |
12279 | (mips_expand_prologue): Likewise. | |
12280 | (mips_restore_reg): Likewise. | |
12281 | (mips_expand_epilogue): Likewise. | |
12282 | (mips_output_mi_thunk): Likewise. | |
12283 | (build_mips16_call_stub): Likewise. | |
12284 | (mips_builtin_branch_and_move): Likewise. | |
12285 | * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise. | |
12286 | * config/mips/mips.md (fixuns_truncdfsi2): Likewise. | |
12287 | (fixuns_truncdfdi2): Likewise. | |
12288 | (fixuns_truncsfsi2): Likewise. | |
12289 | (fixuns_truncsfdi2): Likewise. | |
12290 | (loadgp_absolute): Likewise. | |
12291 | (builtin_setjmp_setup): Likewise. | |
12292 | (builtin_longjmp): Likewise. | |
12293 | (untyped_call): Likewise. | |
12294 | ||
12295 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12296 | ||
12297 | * config/mips/mips-protos.h (mips_split_symbol): Add a mode and | |
12298 | an "rtx *" argument. Return a bool. | |
12299 | * config/mips/mips.c (mips_split_symbol): Accept arbitrary source | |
12300 | values and return true if they can be split. Take the same kind of | |
12301 | mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter | |
12302 | and store the lo_sum there if nonnull. Use the symbol type to | |
12303 | determine whether a $gp or HIGH is needed. | |
12304 | (mips_legitimize_address): Update call to mips_split_symbol and | |
12305 | simplify accordingly. | |
12306 | (mips_legitimize_const_move): Likewise. | |
12307 | * config/mips/mips.md: In the combine define_split, | |
12308 | check mips_split_symbol instead of splittable_symbolic_operand. | |
12309 | Update use of mips_split_symbol in the generator code. | |
12310 | * config/mips/predicates.md (splittable_symbolic_operand): Delete. | |
12311 | ||
12312 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12313 | ||
12314 | * config/mips/mips.c (mips_symbolic_address_p): Delete. | |
12315 | (mips_symbol_insns_1): New function, split out from... | |
12316 | (mips_symbol_insns): ...here. Take a mode argument. Treat loads | |
12317 | and stores separately from load addresses. | |
12318 | (mips_classify_address): Replace uses of mips_symbolic_address_p | |
12319 | with uses of mips_symbol_insns. | |
12320 | (mips_address_insns): Update calls to mips_symbol_insns. | |
12321 | (mips_const_insns): Likewise. | |
12322 | (mips_legitimize_address): Likewise. | |
12323 | ||
12324 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12325 | ||
12326 | * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type. | |
12327 | * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS | |
12328 | block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS. | |
12329 | Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for | |
12330 | non-call contexts if TARGET_MIPS16. | |
12331 | (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM. | |
12332 | (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16 | |
12333 | code for SYMBOL_ABSOLUTE. | |
12334 | (mips_symbol_insns): Likewise. | |
12335 | ||
12336 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12337 | ||
12338 | * config/mips/mips-protos.h (mips_symbol_context): New enumeration. | |
12339 | * config/mips/mips.c (mips_classify_symbol): Take a context argument. | |
12340 | (mips_symbolic_constant_p): Likewise. Update the call to | |
12341 | mips_classify_symbol. | |
12342 | (mips_classify_address): Update the calls to mips_symbolic_constant_p. | |
12343 | (mips_const_insns): Likewise. Update the call to mips_classify_symbol. | |
12344 | (mips_legitimize_address): Update the call to mips_symbolic_constant_p. | |
12345 | (print_operand_reloc): Add a context argument. Update the call to | |
12346 | mips_symbolic_constant_p. | |
12347 | (print_operand): Update the calls to print_operand_reloc. | |
12348 | (print_operand_address): Use print_operand_reloc rather than | |
12349 | print_operand. | |
12350 | (mips_rewrite_small_data_p): Add a context argument. Update the call | |
12351 | to mips_symbolic_constant_p. | |
12352 | (mips_small_data_pattern_1): Make DATA the containing mem. | |
12353 | Update the call to mips_rewrite_small_data_p. | |
12354 | (mips_rewrite_small_data_1): Likewise. | |
12355 | (mips_use_anchors_for_symbol_p): Update the call to | |
12356 | mips_symbolic_constant_p. | |
12357 | * config/mips/predicates.md (const_call_insn_operand): Likewise. | |
12358 | (splittable_symbolic_operand): Likewise. | |
12359 | (move_operand): Likewise. | |
12360 | (absolute_symbolic_operand): Likewise. | |
12361 | (got_disp_operand): Likewise. | |
12362 | (got_page_ofst_operand): Likewise. | |
12363 | ||
12364 | 2007-08-08 Richard Sandiford <richard@codesourcery.com> | |
12365 | ||
12366 | * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to... | |
12367 | (SYMBOL_ABSOLUTE): ...this. | |
12368 | (SYMBOL_SMALL_DATA): Rename to... | |
12369 | (SYMBOL_GP_RELATIVE): ...this. | |
12370 | (SYMBOL_CONSTANT_POOL): Rename to... | |
12371 | (SYMBOL_PC_RELATIVE): ...this. | |
12372 | * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p) | |
12373 | (mips_symbolic_address_p, mips_symbol_insns, override_options) | |
12374 | (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update | |
12375 | after above changes. | |
12376 | * config/mips/predicates.md (const_call_insn_operand): Likewise. | |
12377 | (general_symbolic_operand): Rename to... | |
12378 | (absolute_symbolic_operand): ...this. | |
12379 | * config/mips/mips.md: Update after above changes. | |
12380 | ||
12381 | 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com> | |
12382 | Revital Eres <eres@il.ibm.com> | |
12383 | ||
12384 | * ddg.c (print_ddg): Add dump information. | |
12385 | * modulo-sched.c (print_node_sched_params): Add parameter and | |
12386 | verbosity. | |
12387 | (calculate_maxii): Remove function. | |
12388 | (undo_generate_reg_moves): Likewise. | |
12389 | (undo_permute_partial_schedule): Likewise. | |
12390 | (kernel_number_of_cycles): Likewise. | |
12391 | (MAXII_FACTOR): New definition to calculate the upper bound of II. | |
12392 | (sms_schedule): Use it. Remove profitability checks. | |
12393 | (sms_schedule_by_order): Fix order of nodes within the cycle. | |
12394 | ||
12395 | 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> | |
12396 | ||
12397 | * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add | |
12398 | -profile option, add pie support. | |
12399 | (ENDFILE_SPEC): New spec. | |
12400 | * config/gnu.h (LIB_SPEC): Add -profile option. | |
12401 | ||
12402 | 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> | |
12403 | ||
12404 | * config/i386/gnu.h (CPP_SPEC): Add -pthread option. | |
12405 | * config/gnu.h (LIB_SPEC): Likewise. | |
12406 | ||
12407 | 2007-08-07 Yaz Saito <saito@google.com> | |
12408 | Ian Lance Taylor <iant@google.com> | |
12409 | ||
12410 | * common.opt (finstrument-functions-exclude-function-list): New | |
12411 | option. | |
12412 | (finstrument-functions-exclude-file-list): New option. | |
12413 | * opts.c (char_p): Define and DEF_VEC. | |
12414 | (flag_instrument_functions_exclude_functions): New static | |
12415 | variable. | |
12416 | (flag_instrument_functions_exclude_files): New static variable. | |
12417 | (add_instrument_functions_exclude_list): New static function. | |
12418 | (flag_instrument_functions_exclude_p): New function. | |
12419 | (common_handle_option): Handle new options. | |
12420 | * flags.h (flag_instrument_functions_exclude_p): Declare. | |
12421 | * gimplify.c (gimplify_function_tree): Call | |
12422 | flag_instrument_functions_exclude_p. | |
12423 | * doc/invoke.texi (Option Summary): Mention new options. | |
12424 | (Code Gen Options): Document new options. | |
12425 | ||
12426 | 2007-08-07 Ian Lance Taylor <iant@google.com> | |
12427 | ||
12428 | PR rtl-optimization/32776 | |
12429 | * lower-subreg.c (resolve_clobber): Call resolve_reg_notes. | |
12430 | (resolve_use): Likewise. | |
12431 | (decompose_multiword_subregs): Remove "changed" local variable. | |
12432 | ||
12433 | 2007-08-07 Carlos O'Donell <carlos@codesourcery.com> | |
12434 | ||
12435 | * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes. | |
12436 | * configure: Regenerate. | |
12437 | * config.in: Regenerate. | |
12438 | * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options | |
12439 | spec string. | |
12440 | ||
12441 | 2007-08-07 Ian Lance Taylor <iant@google.com> | |
12442 | ||
12443 | * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL | |
12444 | note, just delete the insn. | |
12445 | ||
12446 | 2007-08-07 Andreas Schwab <schwab@suse.de> | |
12447 | ||
12448 | PR bootstrap/32973 | |
12449 | * gengtype-lex.l: Ignore backslash/newline pair while scanning a | |
12450 | struct definition. | |
12451 | ||
12452 | 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com> | |
12453 | ||
12454 | * lower-subreg.c (resolve_subreg_use): Remove assertion. | |
12455 | (find_decomposable_shift_zext, resolve_shift_zext): New functions. | |
12456 | (decompose_multiword_subregs): Use the functions above to decompose | |
12457 | multiword shifts and zero-extends. | |
12458 | ||
12459 | 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
12460 | ||
12461 | * doc/sourcebuild.texi (Test Directives): Fix "compile" and | |
12462 | "assemble" descriptions which were swapped. | |
12463 | ||
12464 | 2007-08-06 Chao-ying Fu <fu@mips.com> | |
12465 | ||
12466 | * fixed-value.h: New file. | |
12467 | * fixed-value.c: New file. | |
12468 | * Makefile.in (OBJS-common): Add fixed-value.o. | |
12469 | (fixed-value.o): New rule. | |
12470 | (GTFILES): Add fixed-value.h. | |
12471 | * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT | |
12472 | to compare a.low and b.low. | |
12473 | * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef. | |
12474 | ||
12475 | 2007-08-06 H.J. Lu <hongjiu.lu@intel.com> | |
12476 | Daniel Jacobowitz <dan@codesourcery.com> | |
12477 | ||
12478 | PR target/31868 | |
12479 | * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to | |
12480 | tmake_file. | |
12481 | (x86_64-*-netbsd*): Likewise. | |
12482 | (x86_64-*-linux*): Likewise. | |
12483 | (x86_64-*-kfreebsd*-gnu): Likewise. | |
12484 | (x86_64-*-knetbsd*-gnu): Likewise. | |
12485 | (i[34567]86-*-solaris2.1[0-9]*): Likewise. | |
12486 | ||
12487 | * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed. | |
12488 | ||
12489 | * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments. | |
12490 | Add -fno-asynchronous-unwind-tables. | |
12491 | ||
12492 | * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). | |
12493 | * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise. | |
12494 | * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise. | |
12495 | * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise. | |
12496 | * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise. | |
12497 | ||
12498 | 2007-08-06 Steve Ellcey <sje@cup.hp.com> | |
12499 | ||
12500 | * config/ia64/ia64.c (ia64_c_mode_for_suffix): New. | |
12501 | (TARGET_C_MODE_FOR_SUFFIX): New. | |
12502 | ||
12503 | 2007-08-06 Steve Ellcey <sje@cup.hp.com> | |
12504 | ||
12505 | * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'. | |
12506 | ||
12507 | 2007-08-06 Steve Ellcey <sje@cup.hp.com> | |
12508 | ||
12509 | * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo. | |
12510 | ||
12511 | 2007-08-06 H.J. Lu <hongjiu.lu@intel.com> | |
12512 | ||
12513 | * config/i386/i386.md: Check TARGET_ macros and optimize_size | |
12514 | before checking function returns in conditional expressions. | |
12515 | ||
12516 | 2007-08-06 Alfred Minarik <a.minarik@aon.at> | |
12517 | ||
12518 | PR pch/13676 | |
12519 | * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header. | |
12520 | ||
ad41bd84 | 12521 | 2007-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com> |
f13d199c RB |
12522 | |
12523 | PR middle-end/32988 | |
12524 | * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check | |
12525 | for INTEGRAL_TYPE_P. | |
12526 | ||
ad41bd84 | 12527 | 2007-08-05 Paolo Bonzini <bonzini@gnu.org> |
f13d199c RB |
12528 | |
12529 | * configure.ac: Remove --enable-checking=df from default settings. | |
12530 | * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance. | |
12531 | * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification | |
12532 | if the parameter is true. | |
12533 | (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the | |
12534 | DF_VERIFY_SCHEDULED flag is true. | |
12535 | * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED. | |
12536 | (df_finish_pass): Adjust prototype. | |
12537 | * passes.c (execute_todo): Schedule verification if TODO_df_verify is | |
12538 | true. | |
12539 | ||
12540 | * see.c (pass_see): Add TODO_df_verify. | |
12541 | * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify. | |
12542 | * global.c (rest_of_handle_global_alloc): Schedule verification | |
12543 | after the pass. | |
12544 | * local-alloc.c (rest_of_handle_local_alloc): Schedule verification | |
12545 | before the pass. | |
12546 | * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify. | |
12547 | * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass. | |
12548 | * loop-iv.c (iv_analysis_done): Schedule verification after the pass. | |
12549 | ||
12550 | * config/sh/sh.c (sh_output_mi_thunk): Remove dead code. | |
12551 | * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass. | |
12552 | * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass. | |
12553 | ||
12554 | 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com> | |
12555 | Revital Eres <eres@il.ibm.com> | |
12556 | ||
12557 | * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new | |
12558 | flag. | |
12559 | * ddg.c (create_ddg_dependence): Rename to... | |
12560 | (create_ddg_dep_from_intra_loop_link): This. Do not check | |
12561 | for interloop edges. Do not create anti dependence edge when | |
12562 | a true dependence edge exists in the opposite direction and | |
12563 | -fmodulo-sched-allow-regmoves is set. | |
12564 | (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link. | |
12565 | (add_cross_iteration_register_deps): Create anti dependence edge | |
12566 | when -fno-modulo-sched-allow-regmoves is set. | |
12567 | * common.opt (-fmodulo-sched-allow-regmoves): New flag. | |
12568 | ||
12569 | 2007-08-04 Richard Sandiford <richard@codesourcery.com> | |
12570 | ||
12571 | * config/arm/arm.md (movsi): Add braces. | |
12572 | ||
12573 | 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
12574 | ||
12575 | PR middle-end/32780 | |
12576 | * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of | |
12577 | operands for the folding of "A - (A & B)" into "~B & A"; cast them | |
12578 | to type. | |
12579 | ||
12580 | 2007-08-03 Zdenek Dvorak <ook@ucw.cz> | |
12581 | ||
12582 | * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' | |
12583 | state accessor functions. | |
12584 | * cfgloopmanip.c (remove_path, create_preheaders, | |
12585 | force_single_succ_latches, fix_loop_structure): Ditto. | |
12586 | * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, | |
12587 | tree_duplicate_loop_to_header_edge): Ditto. | |
12588 | * cfgloopanal.c (mark_irreducible_loops): Ditto. | |
12589 | * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): | |
12590 | Ditto. | |
12591 | * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures, | |
12592 | cleanup_tree_cfg): Ditto. | |
12593 | * tree-cfg.c (tree_merge_blocks): Ditto. | |
12594 | * cfgloop.c (rescan_loop_exit, record_loop_exits, | |
12595 | release_recorded_exits, get_loop_exit_edges, verify_loop_structure, | |
12596 | loop_preheader_edge, single_exit): Ditto. | |
12597 | (flow_loops_find): Do not clear loops->state. | |
12598 | * cfgloop.h (loops_state_satisfies_p, loops_state_set, | |
12599 | loops_state_clear): New functions. | |
12600 | ||
12601 | 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
12602 | ||
12603 | PR middle-end/32399 | |
12604 | * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR | |
12605 | when adding to the base and convert ELT to sizetype instead of type. | |
12606 | ||
12607 | 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
12608 | ||
12609 | PR middle-end/32304 | |
12610 | * ipa-reference.c (has_proper_scope_for_analysis): Return false when | |
12611 | the decl's type has TYPE_NEEDS_CONSTRUCTING set. | |
12612 | ||
12613 | 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
12614 | ||
12615 | PR middle-end/32935 | |
12616 | * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the | |
12617 | correct type the negate expression. | |
12618 | ||
12619 | 2007-08-03 Jan Hubicka <jh@suse.cz> | |
12620 | ||
12621 | * config/i386/i386.c (setup_incoming_varargs_64): Tolerate 64bit | |
12622 | preferred stack boundary. | |
12623 | ||
12624 | 2007-08-03 David Edelsohn <edelsohn@gnu.org> | |
12625 | ||
12626 | * config/rs6000/rs6000.c (struct processor_cost): Change | |
12627 | l1_cache_lines to l1_cache_size. Add l2_cache_size. | |
12628 | (*_cost): Convert l1 cache information to kilobytes. Add l2 cache | |
12629 | information. | |
12630 | (rios1_costs, rios2_cost): Correct cache line size. | |
12631 | (rs6000_override_options): Set l2-cache-size parameter. | |
12632 | ||
12633 | 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
12634 | Diego Novillo <dnovillo@google.com> | |
12635 | ||
12636 | PR 31521 | |
12637 | * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify | |
12638 | if the range includes 0. | |
12639 | ||
12640 | 2007-08-03 Ben Elliston <bje@au.ibm.com> | |
12641 | ||
12642 | * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate | |
12643 | mode to unspec expressions to silence a warning from the generator | |
12644 | programs. | |
12645 | ||
12646 | 2007-08-02 Steve Ellcey <sje@cup.hp.com> | |
12647 | ||
12648 | * config/ia64/constraints.md ("U"): Make constraint vector only. | |
12649 | ||
12650 | 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> | |
12651 | ||
12652 | PR middle-end/25446 | |
12653 | * c-objc-common.c (c_cannot_inline_tree_fn): Check for an | |
12654 | always_inline attribute on the function decl. | |
12655 | ||
12656 | 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> | |
12657 | ||
12658 | PR middle-end/25445 | |
12659 | * varasm.c (default_binds_local_p_1): Consult flag_whole_program | |
12660 | if we are compiling with -fPIC. | |
12661 | ||
12662 | 2007-08-02 Sandra Loosemore <sandra@codesourcery.com> | |
12663 | Nigel Stephens <nigel@mips.com> | |
12664 | ||
12665 | * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0): | |
12666 | Define for MIPS32 and MIPS64. | |
12667 | ||
12668 | 2007-08-02 Nick Clifton <nickc@redhat.com> | |
12669 | ||
12670 | * config/host-hpux.c: Change copyright header to refer to version | |
12671 | 3 of the GNU General Public License and to point readers at the | |
12672 | COPYING3 file and the FSF's license web page. | |
12673 | * config/alpha/predicates.md, config/alpha/vms-ld.c, | |
12674 | config/alpha/linux.h, config/alpha/alpha.opt, | |
12675 | config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h, | |
12676 | config/alpha/vms-unwind.h, config/alpha/ev4.md, | |
12677 | config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c, | |
12678 | config/alpha/alpha.h, config/alpha/sync.md, | |
12679 | config/alpha/openbsd.h, config/alpha/alpha.md, | |
12680 | config/alpha/alpha-modes.def, config/alpha/ev5.md, | |
12681 | config/alpha/alpha-protos.h, config/alpha/freebsd.h, | |
12682 | config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h, | |
12683 | config/alpha/constraints.md, config/alpha/osf.h, | |
12684 | config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h, | |
12685 | config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h, | |
12686 | config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def, | |
12687 | config/frv/frv-asm.h, config/frv/frv-protos.h, | |
12688 | config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h, | |
12689 | config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h, | |
12690 | config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt, | |
12691 | config/s390/2064.md, config/s390/2084.md, config/s390/s390.md, | |
12692 | config/s390/s390.opt, config/s390/s390-modes.def, | |
12693 | config/s390/fixdfdi.h, config/s390/constraints.md, | |
12694 | config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h, | |
12695 | config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md, | |
12696 | config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md, | |
12697 | config/m32c/m32c-pragma.c, config/m32c/m32c.h, | |
12698 | config/m32c/prologue.md, config/m32c/m32c.abi, | |
12699 | config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md, | |
12700 | config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt, | |
12701 | config/m32c/t-m32c, config/m32c/m32c-modes.def, | |
12702 | config/m32c/jump.md, config/m32c/shift.md, | |
12703 | config/m32c/m32c-protos.h, config/libgloss.h, | |
12704 | config/spu/spu-protos.h, config/spu/predicates.md, | |
12705 | config/spu/spu-builtins.h, config/spu/spu.c, | |
12706 | config/spu/spu-builtins.def, config/spu/spu-builtins.md, | |
12707 | config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md, | |
12708 | config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt, | |
12709 | config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h, | |
12710 | config/sparc/hypersparc.md, config/sparc/predicates.md, | |
12711 | config/sparc/linux.h, config/sparc/sp64-elf.h, | |
12712 | config/sparc/supersparc.md, config/sparc/cypress.md, | |
12713 | config/sparc/openbsd1-64.h, config/sparc/openbsd64.h, | |
12714 | config/sparc/niagara.md, config/sparc/sparc.md, | |
12715 | config/sparc/long-double-switch.opt, config/sparc/ultra3.md, | |
12716 | config/sparc/sparc.opt, config/sparc/sync.md, | |
12717 | config/sparc/sp-elf.h, config/sparc/sparc-protos.h, | |
12718 | config/sparc/ultra1_2.md, config/sparc/biarch64.h, | |
12719 | config/sparc/sparc.c, config/sparc/little-endian.opt, | |
12720 | config/sparc/sysv4-only.h, config/sparc/sparc.h, | |
12721 | config/sparc/linux64.h, config/sparc/freebsd.h, | |
12722 | config/sparc/sol2.h, config/sparc/rtemself.h, | |
12723 | config/sparc/netbsd-elf.h, config/sparc/vxworks.h, | |
12724 | config/sparc/sparc-modes.def, config/sparc/sparclet.md, | |
12725 | config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h, | |
12726 | config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md, | |
12727 | config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt, | |
12728 | config/m32r/linux.h, config/m32r/constraints.md, | |
12729 | config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt, | |
12730 | config/darwin-c.c, config/darwin.opt, config/i386/i386.h, | |
12731 | config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h, | |
12732 | config/i386/i386.md, config/i386/netware-crt0.c, | |
12733 | config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h, | |
12734 | config/i386/kaos-i386.h, config/i386/winnt-stubs.c, | |
12735 | config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h, | |
12736 | config/i386/sol2.h, config/i386/constraints.md, | |
12737 | config/i386/netware-libgcc.c, config/i386/sysv5.h, | |
12738 | config/i386/predicates.md, config/i386/geode.md, | |
12739 | config/i386/x86-64.h, config/i386/kfreebsd-gnu.h, | |
12740 | config/i386/freebsd64.h, config/i386/vxworksae.h, | |
12741 | config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h, | |
12742 | config/i386/rtemself.h, config/i386/netbsd-elf.h, | |
12743 | config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c, | |
12744 | config/i386/netware.h, config/i386/i386-modes.def, | |
12745 | config/i386/sysv4-cpp.h, config/i386/i386-interix.h, | |
12746 | config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h, | |
12747 | config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h, | |
12748 | config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h, | |
12749 | config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md, | |
12750 | config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt, | |
12751 | config/i386/xm-mingw32.h, config/i386/linux64.h, | |
12752 | config/i386/openbsdelf.h, config/i386/xm-cygwin.h, | |
12753 | config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h, | |
12754 | config/i386/winnt-cxx.c, config/i386/i386-interix3.h, | |
12755 | config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c, | |
12756 | config/i386/cygwin2.c, config/i386/i386-protos.h, | |
12757 | config/i386/sync.md, config/i386/openbsd.h, | |
12758 | config/i386/host-mingw32.c, config/i386/i386-aout.h, | |
12759 | config/i386/nto.h, config/i386/biarch64.h, | |
12760 | config/i386/i386-coff.h, config/i386/freebsd.h, | |
12761 | config/i386/driver-i386.c, config/i386/knetbsd-gnu.h, | |
12762 | config/i386/host-i386-darwin.c, config/i386/vxworks.h, | |
12763 | config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h, | |
12764 | config/darwin-protos.h, config/linux.opt, config/sol2.c, | |
12765 | config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h, | |
12766 | config/sh/linux.h, config/sh/elf.h, config/sh/superh.h, | |
12767 | config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h, | |
12768 | config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h, | |
12769 | config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md, | |
12770 | config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h, | |
12771 | config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c, | |
12772 | config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def, | |
12773 | config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md, | |
12774 | config/sh/superh64.h, config/sh/rtemself.h, | |
12775 | config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h, | |
12776 | config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h, | |
12777 | config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c, | |
12778 | config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def, | |
12779 | config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h, | |
12780 | config/avr/predicates.md, config/avr/constraints.md, | |
12781 | config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt, | |
12782 | config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h, | |
12783 | config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h, | |
12784 | config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt, | |
12785 | config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt, | |
12786 | config/c4x/c4x-modes.def, config/c4x/rtems.h, | |
12787 | config/c4x/predicates.md, config/c4x/c4x.h, | |
12788 | config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h, | |
12789 | config/xtensa/predicates.md, config/xtensa/xtensa.c, | |
12790 | config/xtensa/linux.h, config/xtensa/xtensa.h, | |
12791 | config/xtensa/elf.h, config/xtensa/xtensa.md, | |
12792 | config/xtensa/xtensa.opt, config/xtensa/constraints.md, | |
12793 | config/xtensa/xtensa-protos.h, config/dbx.h, | |
12794 | config/stormy16/predicates.md, config/stormy16/stormy16.md, | |
12795 | config/stormy16/stormy16.c, config/stormy16/stormy16.opt, | |
12796 | config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h, | |
12797 | config/host-solaris.c, config/fr30/fr30.h, | |
12798 | config/fr30/predicates.md, config/fr30/fr30-protos.h, | |
12799 | config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt, | |
12800 | config/vxworksae.h, config/sol2-c.c, config/lynx.h, | |
12801 | config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md, | |
12802 | config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c, | |
12803 | config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h, | |
12804 | config/m68hc11/m68hc12.h, config/openbsd-oldgas.h, | |
12805 | config/host-linux.c, config/interix3.h, config/cris/cris.c, | |
12806 | config/cris/predicates.md, config/cris/linux.h, | |
12807 | config/cris/cris.h, config/cris/aout.h, config/cris/cris.md, | |
12808 | config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt, | |
12809 | config/cris/aout.opt, config/cris/cris-protos.h, | |
12810 | config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h, | |
12811 | config/iq2000/iq2000.h, config/iq2000/predicates.md, | |
12812 | config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md, | |
12813 | config/iq2000/iq2000.c, config/iq2000/iq2000.opt, | |
12814 | config/host-darwin.c, config/mt/mt.md, config/mt/mt.c, | |
12815 | config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h, | |
12816 | config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h, | |
12817 | config/chorus.h, config/mn10300/mn10300.c, | |
12818 | config/mn10300/mn10300.opt, config/mn10300/predicates.md, | |
12819 | config/mn10300/mn10300.h, config/mn10300/linux.h, | |
12820 | config/mn10300/constraints.md, config/mn10300/mn10300-protos.h, | |
12821 | config/mn10300/mn10300.md, config/ia64/predicates.md, | |
12822 | config/ia64/itanium1.md, config/ia64/unwind-ia64.h, | |
12823 | config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c, | |
12824 | config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md, | |
12825 | config/ia64/freebsd.h, config/ia64/ia64.md, | |
12826 | config/ia64/ia64-modes.def, config/ia64/constraints.md, | |
12827 | config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h, | |
12828 | config/gofast.h, config/rtems.h, config/sol2-10.h, | |
12829 | config/m68k/predicates.md, config/m68k/m68k.md, | |
12830 | config/m68k/linux.h, config/m68k/m68k-modes.def, | |
12831 | config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h, | |
12832 | config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt, | |
12833 | config/m68k/openbsd.h, config/m68k/m68k-aout.h, | |
12834 | config/m68k/m68k.opt, config/m68k/m68020-elf.h, | |
12835 | config/m68k/m68kelf.h, config/m68k/m68k-devices.def, | |
12836 | config/m68k/uclinux-oldabi.h, config/m68k/m68k.c, | |
12837 | config/m68k/constraints.md, config/m68k/rtemself.h, | |
12838 | config/m68k/netbsd-elf.h, config/m68k/m68k.h, | |
12839 | config/m68k/uclinux.h, config/rs6000/power4.md, | |
12840 | config/rs6000/host-darwin.c, config/rs6000/6xx.md, | |
12841 | config/rs6000/linux.h, config/rs6000/eabi.h, | |
12842 | config/rs6000/aix41.opt, config/rs6000/xcoff.h, | |
12843 | config/rs6000/secureplt.h, config/rs6000/linuxspe.h, | |
12844 | config/rs6000/eabialtivec.h, config/rs6000/8540.md, | |
12845 | config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h, | |
12846 | config/rs6000/windiss.h, config/rs6000/603.md, | |
12847 | config/rs6000/aix41.h, config/rs6000/cell.md, | |
12848 | config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h, | |
12849 | config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt, | |
12850 | config/rs6000/darwin.md, config/rs6000/darwin64.h, | |
12851 | config/rs6000/default64.h, config/rs6000/7xx.md, | |
12852 | config/rs6000/darwin.opt, config/rs6000/spe.md, | |
12853 | config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c, | |
12854 | config/rs6000/rios2.md, config/rs6000/linuxaltivec.h, | |
12855 | config/rs6000/7450.md, config/rs6000/linux64.h, | |
12856 | config/rs6000/constraints.md, config/rs6000/440.md, | |
12857 | config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c, | |
12858 | config/rs6000/rs6000.c, config/rs6000/aix52.h, | |
12859 | config/rs6000/rs6000.h, config/rs6000/power6.md, | |
12860 | config/rs6000/predicates.md, config/rs6000/altivec.md, | |
12861 | config/rs6000/aix64.opt, config/rs6000/rios1.md, | |
12862 | config/rs6000/rs6000-modes.def, config/rs6000/rs64.md, | |
12863 | config/rs6000/eabisim.h, config/rs6000/sysv4le.h, | |
12864 | config/rs6000/darwin7.h, config/rs6000/dfp.md, | |
12865 | config/rs6000/linux64.opt, config/rs6000/sync.md, | |
12866 | config/rs6000/vxworksae.h, config/rs6000/power5.md, | |
12867 | config/rs6000/lynx.h, config/rs6000/biarch64.h, | |
12868 | config/rs6000/rs6000.md, config/rs6000/sysv4.opt, | |
12869 | config/rs6000/eabispe.h, config/rs6000/e500.h, | |
12870 | config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h, | |
12871 | config/rs6000/netbsd.h, config/rs6000/e500-double.h, | |
12872 | config/rs6000/aix.h, config/rs6000/vxworks.h, | |
12873 | config/rs6000/40x.md, config/rs6000/aix51.h, | |
12874 | config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md, | |
12875 | config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def, | |
12876 | config/arc/arc.h, config/mcore/mcore-elf.h, | |
12877 | config/mcore/mcore-protos.h, config/mcore/predicates.md, | |
12878 | config/mcore/mcore.md, config/mcore/mcore.c, | |
12879 | config/mcore/mcore.opt, config/mcore/mcore.h, | |
12880 | config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h, | |
12881 | config/score/predicates.md, config/score/score-version.h, | |
12882 | config/score/score-protos.h, config/score/misc.md, | |
12883 | config/score/elf.h, config/score/score.c, config/score/mac.md, | |
12884 | config/score/score7.md, config/score/score.h, | |
12885 | config/score/score-conv.h, config/score/score-mdaux.c, | |
12886 | config/score/score.md, config/score/score.opt, | |
12887 | config/score/score-modes.def, config/score/score-mdaux.h, | |
12888 | config/score/mul-div.S, config/arm/uclinux-elf.h, | |
12889 | config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md, | |
12890 | config/arm/symbian.h, config/arm/linux-elf.h, | |
12891 | config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, | |
12892 | config/arm/elf.h, config/arm/aout.h, config/arm/arm.c, | |
12893 | config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h, | |
12894 | config/arm/strongarm-pe.h, config/arm/arm.h, | |
12895 | config/arm/cortex-a8-neon.md, config/arm/semiaof.h, | |
12896 | config/arm/cortex-a8.md, config/arm/uclinux-eabi.h, | |
12897 | config/arm/arm-modes.def, config/arm/linux-eabi.h, | |
12898 | config/arm/rtems-elf.h, config/arm/neon-schedgen.ml, | |
12899 | config/arm/arm-cores.def, config/arm/arm-protos.h, | |
12900 | config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h, | |
12901 | config/arm/wince-pe.h, config/arm/neon.md, | |
12902 | config/arm/constraints.md, config/arm/neon.ml, | |
12903 | config/arm/xscale-elf.h, config/arm/strongarm-coff.h, | |
12904 | config/arm/arm.opt, config/arm/arm926ejs.md, | |
12905 | config/arm/predicates.md, config/arm/iwmmxt.md, | |
12906 | config/arm/arm_neon.h, config/arm/unknown-elf.h, | |
12907 | config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt, | |
12908 | config/arm/neon-testgen.ml, config/arm/arm.md, | |
12909 | config/arm/xscale-coff.h, config/arm/pe.c, | |
12910 | config/arm/arm-generic.md, config/arm/pe.h, | |
12911 | config/arm/kaos-strongarm.h, config/arm/freebsd.h, | |
12912 | config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md, | |
12913 | config/arm/strongarm-elf.h, config/arm/cirrus.md, | |
12914 | config/arm/netbsd-elf.h, config/arm/vxworks.h, | |
12915 | config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c, | |
12916 | config/pa/predicates.md, config/pa/pa64-hpux.h, | |
12917 | config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt, | |
12918 | config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h, | |
12919 | config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h, | |
12920 | config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h, | |
12921 | config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, | |
12922 | config/pa/pa-hpux1010.h, config/pa/pa-protos.h, | |
12923 | config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h, | |
12924 | config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h, | |
12925 | config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt, | |
12926 | config/pa/pa64-regs.h, config/pa/pa-modes.def, | |
12927 | config/pa/constraints.md, config/darwin9.h, config/mips/4100.md, | |
12928 | config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h, | |
12929 | config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h, | |
12930 | config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md, | |
12931 | config/mips/7000.md, config/mips/9000.md, config/mips/4600.md, | |
12932 | config/mips/linux64.h, config/mips/elforion.h, | |
12933 | config/mips/constraints.md, config/mips/generic.md, | |
12934 | config/mips/predicates.md, config/mips/4300.md, | |
12935 | config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md, | |
12936 | config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md, | |
12937 | config/mips/5k.md, config/mips/vr4120-div.S, | |
12938 | config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md, | |
12939 | config/mips/mips-protos.h, config/mips/6000.md, | |
12940 | config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h, | |
12941 | config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h, | |
12942 | config/mips/mips-modes.def, config/mips/vr.h, | |
12943 | config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h, | |
12944 | config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h, | |
12945 | config/vax/vax.h, config/vax/elf.h, config/vax/vax.md, | |
12946 | config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def, | |
12947 | config/vax/openbsd1.h, config/vax/netbsd.h, | |
12948 | config/vax/vax-protos.h, config/vax/netbsd-elf.h, | |
12949 | config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h, | |
12950 | config/h8300/rtems.h, config/h8300/predicates.md, | |
12951 | config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h, | |
12952 | config/h8300/h8300.md, config/h8300/h8300.opt, | |
12953 | config/h8300/coff.h, config/h8300/h8300-protos.h, | |
12954 | config/v850/v850.md, config/v850/predicates.md, | |
12955 | config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt, | |
12956 | config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c, | |
12957 | config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h, | |
12958 | config/mmix/mmix.h, config/mmix/predicates.md, | |
12959 | config/mmix/mmix-protos.h, config/mmix/mmix.md, | |
12960 | config/mmix/mmix.c, config/mmix/mmix.opt, | |
12961 | config/mmix/mmix-modes.def, config/bfin/bfin.opt, | |
12962 | config/bfin/rtems.h, config/bfin/bfin-modes.def, | |
12963 | config/bfin/predicates.md, config/bfin/bfin-protos.h, | |
12964 | config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: | |
12965 | Likewise. | |
12966 | ||
12967 | 2007-08-02 Richard Sandiford <richard@codesourcery.com> | |
12968 | ||
12969 | * emit-rtl.c (reset_used_decls): Rename to... | |
12970 | (set_used_decls): ...this. Set the used flag rather than clearing it. | |
12971 | (unshare_all_rtl_again): Update accordingly. Set flags on argument | |
12972 | DECL_RTLs rather than resetting them. | |
12973 | ||
12974 | 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com> | |
12975 | ||
12976 | * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg. | |
12977 | ||
12978 | 2007-08-01 Sandra Loosemore <sandra@codesourcery.com> | |
12979 | ||
12980 | * reload.c (find_reloads_address_part): Pass correct MEMREFLOC | |
12981 | argument to find_reloads_address. | |
12982 | ||
12983 | 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com> | |
12984 | ||
12985 | PR tree-optimization/32919 | |
12986 | * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs. | |
12987 | * tree-ssa-coalesce.c (ssa_conflicts_dump): New. | |
12988 | (coalesce_ssa_name): Call it. | |
12989 | ||
12990 | 2007-08-01 Sandra Loosemore <sandra@codesourcery.com> | |
12991 | David Ung <davidu@mips.com> | |
12992 | ||
12993 | * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New. | |
12994 | (__mips16_unorddf2, __mips16_floatunsidf): New. | |
12995 | * config/mips/mips.c (mips_init_libfuncs): Add optab entries for | |
12996 | above functions. | |
12997 | * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions. | |
12998 | ||
12999 | 2007-08-01 Zdenek Dvorak <ook@ucw.cz> | |
13000 | ||
13001 | * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH. | |
13002 | Display new operands of OMP_SECTIONS and OMP_CONTINUE. | |
13003 | * tree.h (OMP_SECTIONS_CONTROL): New macro. | |
13004 | (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH. | |
13005 | * omp-low.c (get_ws_args_for, determine_parallel_type, | |
13006 | expand_omp_for_generic, expand_omp_for_static_nochunk, | |
13007 | expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): | |
13008 | Work with more precise CFG. | |
13009 | (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH. | |
13010 | (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to | |
13011 | OMP_CONTINUE. | |
13012 | * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH. | |
13013 | * gimple-low.c (lower_stmt): Ditto. | |
13014 | * tree-inline.c (estimate_num_insns_1): Ditto. | |
13015 | * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands. | |
13016 | (OMP_SECTIONS_SWITCH): New. | |
13017 | * tree-cfgcleanup.c (cleanup_omp_return): New. | |
13018 | (cleanup_tree_cfg_bb): Call cleanup_omp_return. | |
13019 | * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE | |
13020 | and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH. | |
13021 | (tree_redirect_edge_and_branch): Handle omp constructs. | |
13022 | ||
13023 | * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS | |
13024 | with three arguments. | |
13025 | ||
13026 | 2007-08-01 Zdenek Dvorak <ook@ucw.cz> | |
13027 | ||
13028 | * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only | |
13029 | in loop closed ssa. | |
13030 | ||
13031 | 2007-08-01 Zdenek Dvorak <ook@ucw.cz> | |
13032 | ||
13033 | * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that | |
13034 | the loop structures may need fixing. | |
13035 | * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): | |
13036 | New functions. | |
13037 | (cleanup_tree_cfg_loop): Removed. | |
13038 | (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures. | |
13039 | * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg | |
13040 | instead of running cleanup_tree_cfg_loop. | |
13041 | * cfgloop.h (LOOPS_NEED_FIXUP): New constant. | |
13042 | * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed. | |
13043 | (tree_predictive_commoning): Declaration changed. | |
13044 | * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop. | |
13045 | ||
13046 | 2007-08-01 Zdenek Dvorak <ook@ucw.cz> | |
13047 | ||
13048 | * doc/invoke.texi (l1-cache-size): Update documentation. | |
13049 | (l2-cache-size): Document. | |
13050 | * params.h (L2_CACHE_SIZE): New macro. | |
13051 | * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect | |
13052 | that L1_CACHE_SIZE is in kB now. | |
13053 | (L2_CACHE_SIZE_BYTES): New macro. | |
13054 | (tree_ssa_prefetch_arrays): Show size in kB. | |
13055 | * config/i386/i386.h (struct processor_costs): Add l1_cache_size | |
13056 | and l2_cache_size fields. | |
13057 | * config/i386/driver-i386.c (describe_cache): Detect cache size | |
13058 | in kB. | |
13059 | * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost, | |
13060 | pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost, | |
13061 | amdfam10_cost, pentium4_cost, nocona_cost, core2_cost, | |
13062 | generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size. | |
13063 | (override_options): Set l1-cache-size and l2-cache-size to default | |
13064 | values if not specified otherwise. | |
13065 | * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB. | |
13066 | (PARAM_L2_CACHE_SIZE): New. | |
13067 | ||
13068 | 2007-08-01 Nigel Stephens <nigel@mips.com> | |
13069 | David Ung <davidu@mips.com> | |
13070 | Thiemo Seufer <ths@mips.com> | |
13071 | Chris Dearman <chris@mips.com> | |
13072 | Richard Sandiford <richard@codesourcery.com> | |
13073 | ||
13074 | * config.gcc (mips*-sde-elf*): New stanza. | |
13075 | (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) | |
13076 | (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) | |
13077 | (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*) | |
13078 | (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*) | |
13079 | (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss) | |
13080 | (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16 | |
13081 | to tmake_file. | |
13082 | * config/mips/sde.h: New file. | |
13083 | * config/mips/t-libgcc-mips16: Likewise. | |
13084 | * config/mips/t-sde: Likewise. | |
13085 | * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings | |
13086 | of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR, | |
13087 | _MIPS_FPSET and _MIPS_SZINT. | |
13088 | * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise. | |
13089 | * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate | |
13090 | insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC. | |
13091 | * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete. | |
13092 | * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. | |
13093 | * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. | |
13094 | * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32, | |
13095 | _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG, | |
13096 | _MIPS_SZPTR and _MIPS_FPSET. | |
13097 | (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no | |
13098 | architecture is specified. | |
13099 | (MIPS_32BIT_OPTION_SPEC): New macro. | |
13100 | ||
13101 | 2007-07-31 Dan Hipschman <dsh@google.com> | |
13102 | ||
13103 | * gcc.c (end_going_arg): New function. | |
13104 | (do_spec_2): Use it. | |
13105 | (do_spec_1): Use it. | |
13106 | ||
13107 | 2007-07-31 H.J. Lu <hongjiu.lu@intel.com> | |
13108 | ||
13109 | * ddg.c (add_cross_iteration_register_deps): Declare bb_info | |
13110 | only if ENABLE_CHECKING is defined. | |
13111 | ||
13112 | 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com> | |
13113 | ||
13114 | * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru, | |
13115 | df_ru_add_problem, df_ru_get_bb_info): Removed. | |
13116 | (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered. | |
13117 | * df-problems.c (df_ru_problem_data, df_ru_set_bb_info, | |
13118 | df_ru_free_bb_info, df_ru_alloc, | |
13119 | df_ru_bb_local_compute_process_def, | |
13120 | df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, | |
13121 | df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, | |
13122 | df_ru_transfer_function, df_ru_free, df_ru_start_dump, | |
13123 | df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU, | |
13124 | df_ru_add_problem): Removed. | |
13125 | ||
13126 | 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
13127 | ||
13128 | PR target/32847 | |
13129 | * pa.md (casesi32): Use match_scratch. Revise insn condition. | |
13130 | (casesi32p, casesi64p): Likewise. | |
13131 | (casesi): Adjust for above. | |
13132 | ||
13133 | 2007-07-31 Richard Sandiford <richard@codesourcery.com> | |
13134 | ||
13135 | * mode-switching.c (create_pre_exit): Don't search past calls. | |
13136 | ||
13137 | 2007-07-31 Sandra Loosemore <sandra@codesourcery.com> | |
13138 | ||
13139 | * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test. | |
13140 | ||
13141 | 2007-07-31 Revital Eres <eres@il.ibm.com> | |
13142 | ||
13143 | * ddg.c (add_deps_for_def): Rename to... | |
13144 | (add_cross_iteration_register_deps): This. Change implementation | |
13145 | to use only reaching def and def-use chains to construct the | |
13146 | inter loop dependencies. | |
13147 | (add_deps_for_use): Remove function. | |
13148 | (build_inter_loop_deps): Call add_cross_iteration_register_deps | |
13149 | function to build the inter loop dependencies. | |
13150 | * modulo-sched.c (sms_schedule): Build only | |
13151 | reaching def and def-use chains for the propose of the ddg | |
13152 | construction. | |
13153 | ||
13154 | 2007-07-31 Julian Brown <julian@codesourcery.com> | |
13155 | ||
13156 | * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal): | |
13157 | New define_insns. Use correct RTL. | |
13158 | (vec_set<mode>): Write as expander. | |
13159 | ||
13160 | 2007-07-31 Razya Ladelsky <razya@il.ibm.com> | |
13161 | ||
13162 | * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring | |
13163 | to an unallocated space. | |
13164 | ||
13165 | 2007-07-30 Jan Sjodin <jan.sjodin@amd.com> | |
13166 | ||
13167 | * tree-data-ref.c | |
13168 | (split_constant_offset): Enable split_constant_offset to extract | |
13169 | constants from other statements. | |
13170 | * tree-vect-transform.c | |
13171 | (vect_create_addr_base_for_vector_ref): Generate data_ref_base | |
13172 | to a temp var. Force base_offset to be simple. | |
13173 | ||
13174 | 2007-07-30 Seongbae Park <seongbae.park@gmail.com> | |
13175 | ||
13176 | * df-scan.c (df_scan_verify): Remove artificial limit on | |
13177 | the number of blocks for verification. | |
13178 | * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs, | |
13179 | df_simulate_defs): Avoid unnecessary insn checking for defs. | |
13180 | ||
13181 | 2007-07-29 Mark Mitchell <mark@codesourcery.com> | |
13182 | ||
13183 | * config/m68k/lb1sf68.asm (FUNC): New macro. | |
13184 | (__mulsi3): Use it. | |
13185 | (__udivsi3): Likewise. | |
13186 | (__divsi3): Likewise. | |
13187 | (__umodsi3): Likewise. | |
13188 | (__modsi3): Likewise. | |
13189 | (__subdf3): Likewise. | |
13190 | (__adddf3): Likewise. | |
13191 | (__muldf3): Likewise. | |
13192 | (__divdf3): Likewise. | |
13193 | (__negdf2): Likewise. | |
13194 | (__cmpdf2): Likewise. | |
13195 | (__subsf3): Likewise. | |
13196 | (__addsf3): Likewise. | |
13197 | (__mulsf3): Likewise. | |
13198 | (__divsf3): Likewise. | |
13199 | (__negsf2): Likewise. | |
13200 | (__cmpsf2): Likewise. | |
13201 | (__eqdf2): Likewise. | |
13202 | (__nedf2): Likewise. | |
13203 | (__gtdf2): Likewise. | |
13204 | (__gedf2): Likewise. | |
13205 | (__ltdf2): Likewise. | |
13206 | (__ledf2): Likewise. | |
13207 | (__eqsf2): Likewise. | |
13208 | (__nesf2): Likewise. | |
13209 | (__gtsf2): Likewise. | |
13210 | (__gesf2): Likewise. | |
13211 | (__ltsf2): Likewise. | |
13212 | (__lesf2): Likewise. | |
13213 | ||
13214 | 2007-07-30 Ollie Wild <aaw@google.com> | |
13215 | ||
13216 | * c-ppoutput.c (print_lines_directives_only): New function. | |
13217 | (scan_translation_unit_directives_only): New function. | |
13218 | (preprocess_file): Add call to scan_translation_unit_directives_only. | |
13219 | * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only. | |
13220 | (sanitize_cpp_opts): Add default flag_dump_macros setting for | |
13221 | -fdirectives-only. Add errors for -fdirectives-only conflict with | |
13222 | -Wunused-macros and -traditional. | |
13223 | (finish_options): Add builtin macro initialization for | |
13224 | -fdirectives-only + -fpreprocessed. | |
13225 | * c.opt (fdirectives-only): New. | |
13226 | * doc/cppopts.texi (fdirectives-only): New. | |
13227 | ||
13228 | 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13229 | ||
13230 | * alias.c (record_set, memory_modified_1): Constify. | |
13231 | * bt-load.c (note_btr_set): Likewise. | |
13232 | * caller-save.c (mark_set_regs, add_stored_regs): Likewise. | |
13233 | * combine.c (set_nonzero_bits_and_sign_copies, | |
13234 | expand_field_assignment, record_dead_and_set_regs_1, | |
13235 | use_crosses_set_p, reg_dead_at_p_1, can_combine_p, | |
13236 | likely_spilled_retval_1): Likewise. | |
13237 | * config/frv/frv.c (frv_registers_update_1, frv_io_check_address, | |
13238 | frv_io_handle_set): Likewise. | |
13239 | * config/mips/mips.c (mips_sim_record_set, | |
13240 | vr4130_true_reg_dependence_p_1): Likewise. | |
13241 | * config/mt/mt.c (insn_dependent_p_1): Likewise. | |
13242 | * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. | |
13243 | * config/sh/sh.c (flow_dependent_p_1): Likewise. | |
13244 | * cselib.c (cselib_invalidate_rtx_note_stores): Likewise. | |
13245 | * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise. | |
13246 | * ddg.c (mark_mem_store): Likewise. | |
13247 | * df-problems.c (df_urec_mark_reg_change): Likewise. | |
13248 | * function.c (update_epilogue_consts): Likewise. | |
13249 | * gcse.c (record_set_info, record_last_set_info, | |
13250 | mems_conflict_for_gcse_p, canon_list_insert, reg_set_info, | |
13251 | reg_clear_last_set): Likewise. | |
13252 | * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live): | |
13253 | Likewise. | |
13254 | * jump.c (reversed_comparison_code_parts): Likewise. | |
13255 | * local-alloc.c (validate_equiv_mem_from_store, no_equiv, | |
13256 | reg_is_set): Likewise. | |
13257 | * loop-iv.c (mark_altered): Likewise. | |
13258 | * mode-switching.c (reg_becomes_live): Likewise. | |
13259 | * optabs.c (no_conflict_move_test): Likewise. | |
13260 | * postreload-gcse.c (record_last_set_info, find_mem_conflicts): | |
13261 | Likewise. | |
13262 | * postreload.c (reload_combine_note_store, move2add_note_store): | |
13263 | Likewise. | |
13264 | * regmove.c (flags_set_1): Likewise. | |
13265 | * regrename.c (note_sets, kill_clobbered_value, kill_set_value): | |
13266 | Likewise. | |
13267 | * reload1.c (mark_not_eliminable, forget_old_reloads_1): | |
13268 | Likewise. | |
13269 | * resource.c (update_live_status): Likewise. | |
13270 | * rtl.h (set_of, note_stores): Likewise. | |
13271 | * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of, | |
13272 | note_stores, parms_set): Likewise. | |
13273 | * sched-rgn.c (sets_likely_spilled_1): Likewise. | |
13274 | * stack-ptr-mod.c (notice_stack_pointer_modification_1): | |
13275 | Likewise. | |
13276 | * var-tracking.c (count_stores, add_stores): Likewise. | |
13277 | ||
13278 | 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13279 | ||
13280 | * alias.c (mems_in_disjoint_alias_sets_p, | |
13281 | fixed_scalar_and_varying_struct_p, aliases_everything_p, | |
13282 | nonoverlapping_component_refs_p, nonoverlapping_memrefs_p, | |
13283 | write_dependence_p, mems_in_disjoint_alias_sets_p, | |
13284 | read_dependence, true_dependence, canon_true_dependence, | |
13285 | anti_dependence, output_dependence): Constify. | |
13286 | * combine.c (extended_count): Likewise. | |
13287 | * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise. | |
13288 | * cselib.c (get_value_hash, references_value_p, | |
13289 | cselib_reg_set_mode, cselib_rtx_varies_p): Likewise. | |
13290 | * cselib.h (cselib_reg_set_mode, references_value_p): Likewise. | |
13291 | * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise. | |
13292 | * function.c (contains, prologue_epilogue_contains, | |
13293 | sibcall_epilogue_contains): Likewise. | |
13294 | * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p, | |
13295 | pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p, | |
13296 | only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum, | |
13297 | reg_or_subregno): Likewise. | |
13298 | * recog.c (asm_noperands): Likewise. | |
13299 | * reload1.c (function_invariant_p): Likewise. | |
13300 | * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p, | |
13301 | rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx, | |
13302 | condjump_p, any_condjump_p, any_uncondjump_p, pc_set, | |
13303 | simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p, | |
13304 | true_regnum, reg_or_subregno, condjump_in_parallel_p, | |
13305 | extended_count, prologue_epilogue_contains, | |
13306 | sibcall_epilogue_contains, function_invariant_p, true_dependence, | |
13307 | canon_true_dependence, read_dependence, anti_dependence, | |
13308 | output_dependence): Likewise. | |
13309 | * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise. | |
13310 | ||
13311 | 2007-07-30 Julian Brown <julian@codesourcery.com> | |
13312 | ||
13313 | * config/arm/neon.md (V_ext): New mode attribute. | |
13314 | (neon_vget_lane<mode>): Replace with define_expand. | |
13315 | (neon_vget_lane<mode>_sext_internal) | |
13316 | (neon_vget_lane<mode>_zext_internal): New define_insns for double | |
13317 | and quad precision vectors. | |
13318 | (neon_vget_lanedi): Add bounds check. Remove dead comment. | |
13319 | * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics | |
13320 | have typeless 32-bit result. | |
13321 | ||
13322 | 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
13323 | ||
13324 | PR tree-opt/32527 | |
13325 | * tree-affine.h (aff_tree): The type of rest is sizetype for types | |
13326 | of pointers. | |
13327 | * tree-affine.c (aff_combination_scale): If type is a pointer type, | |
13328 | use sizetype for rest. | |
13329 | (aff_combination_add_elt): Likewise. Don't specialize pointer types. | |
13330 | (aff_combination_convert): Don't convert rest for pointer types. | |
13331 | ||
13332 | 2007-07-28 Daniel Berlin <dberlin@dberlin.org> | |
13333 | ||
13334 | * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h | |
13335 | ||
13336 | * tree-ssa-alias.c: Add alloc-pool.h. | |
13337 | (init_alias_info): Free alias_bitmap_obstack. | |
13338 | (delete_alias_info): Call delete_mem_ref_stats. | |
13339 | (get_mem_sym_stats_for): Use alloc_pool. | |
13340 | (init_mem_ref_stats): Do not delete mem_ref_stats here. | |
13341 | (delete_mem_sym_stats): Removed. | |
13342 | ||
13343 | 2007-07-29 Sebastian Pop <sebpop@gmail.com> | |
13344 | ||
13345 | * tree-data-ref.c (add_multivariate_self_dist): Parametric access | |
13346 | functions cannot be represented as classical distance vectors. | |
13347 | ||
13348 | 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13349 | ||
13350 | * attribs.c (hash_attr, eq_attr, init_attributes): Constify. | |
13351 | * builtins.c (validate_arg, builtin_mathfn_code, | |
13352 | validate_arglist): Likewise. | |
13353 | * calls.c (call_expr_flags): Likewise. | |
13354 | * combine.c (reg_nonzero_bits_for_combine, | |
13355 | reg_num_sign_bit_copies_for_combine, get_last_value, | |
13356 | reg_truncated_to_mode): Likewise. | |
13357 | * emit-rtl.c (subreg_lowpart_p): Likewise. | |
13358 | * expr.c (highest_pow2_factor_for_target, | |
13359 | categorize_ctor_elements_1, categorize_ctor_elements, | |
13360 | count_type_elements, contains_packed_reference, | |
13361 | highest_pow2_factor, highest_pow2_factor_for_target): Likewise. | |
13362 | * fold-const.c (may_negate_without_overflow_p, int_const_binop, | |
13363 | fold_convertible_p, operand_equal_p, tree_swap_operands_p, | |
13364 | native_encode_int, native_encode_real, native_encode_complex, | |
13365 | native_encode_vector, native_encode_expr, native_interpret_int, | |
13366 | native_interpret_real, native_interpret_complex, | |
13367 | native_interpret_vector, native_interpret_expr): Likewise. | |
13368 | * function.c (use_register_for_decl): Likewise. | |
13369 | * gimplify.c (get_name): Likewise. | |
13370 | * langhooks-def.h (lhd_return_null_const_tree): New. | |
13371 | (LANG_HOOKS_GET_CALLEE_FNDECL): Use it. | |
13372 | * langhooks.c (lhd_return_null_const_tree): New. | |
13373 | * langhooks.h (lang_get_callee_fndecl): Constify. | |
13374 | * output.h (constructor_static_from_elts_p): Likewise. | |
13375 | * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise. | |
13376 | * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode, | |
13377 | subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise. | |
13378 | * rtlanal.c (cached_nonzero_bits, nonzero_bits1, | |
13379 | cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p, | |
13380 | nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise. | |
13381 | * rtlhooks-def.h (reg_nonzero_bits_general, | |
13382 | reg_num_sign_bit_copies_general, reg_truncated_to_mode_general): | |
13383 | Likewise. | |
13384 | * rtlhooks.c (reg_num_sign_bit_copies_general, | |
13385 | reg_nonzero_bits_general, reg_truncated_to_mode_general): | |
13386 | Likewise. | |
13387 | * stmt.c (warn_if_unused_value, is_body_block): Likewise. | |
13388 | * stor-layout.c (mode_for_size_tree): Likewise. | |
13389 | * tree-ssa-loop-im.c (memref_eq): Likewise. | |
13390 | * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise. | |
13391 | * tree.c (contains_placeholder_p, type_list_equal, | |
13392 | simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p): | |
13393 | Likewise. | |
13394 | * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p, | |
13395 | mode_for_size_tree, categorize_ctor_elements, count_type_elements, | |
13396 | contains_placeholder_p, contains_packed_reference, | |
13397 | get_callee_fndecl, operand_equal_for_phi_arg_p, | |
13398 | warn_if_unused_value, is_body_block, native_encode_expr, | |
13399 | native_interpret_expr, fold_convertible_p, operand_equal_p, | |
13400 | int_const_binop, tree_swap_operands_p, builtin_mathfn_code, | |
13401 | validate_arglist, simple_cst_equal, type_list_equal, | |
13402 | use_register_for_decl, call_expr_flags, get_name, | |
13403 | highest_pow2_factor): Likewise. | |
13404 | (const_call_expr_arg_iterator_d, | |
13405 | init_const_call_expr_arg_iterator, next_const_call_expr_arg, | |
13406 | first_const_call_expr_arg, more_const_call_expr_args_p, | |
13407 | FOR_EACH_CONST_CALL_EXPR_ARG): New. | |
13408 | * varasm.c (constructor_static_from_elts_p): Constify. | |
13409 | ||
13410 | 2007-07-28 Kazu Hirata <kazu@codesourcery.com> | |
13411 | ||
13412 | * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md, | |
13413 | config/arm/neon-schedgen.ml, config/arm/neon.ml, | |
13414 | config/arm/vec-common.md, config/ia64/div.md, cselib.c, | |
13415 | df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c, | |
13416 | regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c, | |
13417 | tree-vect-transform.c, tree.def: Fix comment typos. Follow | |
13418 | spelling conventions. | |
13419 | * doc/invoke.texi: Follow spelling conventions. | |
13420 | ||
13421 | 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com> | |
13422 | Revital Eres <eres@il.ibm.com> | |
13423 | ||
13424 | * modulo-sched.c (sms_schedule): Avoid loops which includes | |
13425 | auto-increment instructions. | |
13426 | ||
13427 | 2007-07-28 Richard Guenther <rguenther@suse.de> | |
13428 | ||
13429 | PR middle-end/32920 | |
13430 | * fold-const.c (fold_cond_expr_with_comparison): Convert | |
13431 | operand zero of MIN/MAX_EXPR to correct type. | |
13432 | ||
13433 | 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13434 | ||
13435 | * calls.c (special_function_p, setjmp_call_p, alloca_call_p, | |
13436 | flags_from_decl_or_type): Constify. | |
13437 | * gcc.c (do_spec_1): Likewise. | |
13438 | * print-tree.c (dump_addr, print_node_brief): Likewise. | |
13439 | * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p, | |
13440 | simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p, | |
13441 | tree_purge_all_dead_eh_edges): Likewise. | |
13442 | * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p, | |
13443 | tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges): | |
13444 | Likewise. | |
13445 | * tree.c (expr_location, expr_has_location, expr_locus, | |
13446 | expr_filename, expr_lineno, get_inner_array_type, | |
13447 | fields_compatible_p): Likewise. | |
13448 | * tree.h (get_inner_array_type, fields_compatible_p, | |
13449 | expr_location, expr_has_location, expr_locus, expr_filename, | |
13450 | expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type, | |
13451 | setjmp_call_p, alloca_call_p): Likewise. | |
13452 | ||
13453 | 2007-07-28 Daniel Berlin <dberlin@dberlin.org> | |
13454 | ||
13455 | * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE, | |
13456 | TV_FLOW_INSENSITIVE. | |
13457 | ||
13458 | * tree-ssa-alias.c (compute_call_clobbered): Push/pop | |
13459 | TV_CALL_CLOBBER. | |
13460 | (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE. | |
13461 | (compute_flow_insensitive_aliasing): Ditto for | |
13462 | TV_FLOW_INSENSITIVE. | |
13463 | ||
13464 | 2007-07-27 Jan Hubicka <jh@suse.cz> | |
13465 | ||
13466 | * config/i386/i386.c (register_move_cost): Remove accidentally | |
13467 | comitted #if 0 block. | |
13468 | ||
13469 | * attribs.c: Include hashtab.h | |
13470 | (attribute_hash): New. | |
13471 | (substring): New structure. | |
13472 | (extract_attribute_substring, substring_hash, hash_attr, eq_attr): | |
13473 | New function. | |
13474 | (init_attributes): Initialize attribute hash. | |
13475 | (decl_attributes): Use attribute hash. | |
13476 | * Makefile.in (attribs.c): Depend on hashtab.h. | |
13477 | ||
13478 | 2007-07-27 Steve Ellcey <sje@cup.hp.com> | |
13479 | ||
13480 | * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test. | |
13481 | ||
13482 | 2007-07-27 Richard Sandiford <richard@codesourcery.com> | |
13483 | ||
13484 | * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp, | |
13485 | __mips_dspr2 and __mips_dsp_rev macros. | |
13486 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev. | |
13487 | ||
13488 | 2007-07-27 Douglas Gregor <doug.gregor@gmail.com> | |
13489 | ||
13490 | * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X. | |
13491 | ||
13492 | 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com> | |
13493 | ||
13494 | PR middle-end/32749 | |
13495 | ||
13496 | * df-problems.c (df_create_unused_note): Removed do_not_gen parm | |
13497 | and the updating of the live and do_not_gen sets. | |
13498 | (df_note_bb_compute): Added updating of live and do_not_gen sets | |
13499 | for regular defs so that the case of clobber inside conditional | |
13500 | call is processed correctly. | |
13501 | ||
13502 | 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz> | |
13503 | ||
13504 | * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the | |
13505 | operands with compatible type. | |
13506 | ||
13507 | 2007-07-27 Richard Sandiford <richard@codesourcery.com> | |
13508 | ||
13509 | * expr.h (store_bit_field): Don't return a value. | |
13510 | * expmed.c (check_predicate_volatile_ok): New function. | |
13511 | (store_bit_field_1): New function, extracted from store_bit_field. | |
13512 | Take a fallback_p argument and return true if the operation succeeded. | |
13513 | Only use store_fixed_bit_field if fallback_p. Don't recompute | |
13514 | mode_for_extraction; use op_mode instead. Try forcing memories | |
13515 | into registers if the insv expander fails. | |
13516 | (store_bit_field): Use store_bit_field_1 with fallback_p true. | |
13517 | Don't return a value. | |
13518 | (convert_extracted_bit_field): New function, extracted from | |
13519 | store_bit_field. | |
13520 | (extract_bit_field_1): Likewise. Take a fallback_p argument | |
13521 | and return NULL if the operation succeeded. Only use | |
13522 | extract_fixed_bit_field if fallback_p. Only calculate one | |
13523 | extraction mode. Combine code for extv and extzv. Try forcing | |
13524 | memories into registers if the ext(z)v expander fails. | |
13525 | (extract_bit_field): Use extract_bit_field_1 with fallback_p true. | |
13526 | ||
13527 | 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk> | |
13528 | ||
13529 | * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags | |
13530 | into bitfields. | |
13531 | (df_ref): Likewise. Put regno with other integer fields. | |
13532 | ||
13533 | 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk> | |
13534 | ||
13535 | * df.h (df_mw_hardreg): Remove "loc" field. | |
13536 | * df-scan.c (df_ref_record): Don't set it. Remove redundant | |
13537 | local variable. | |
13538 | * df-problems.c (df_whole_mw_reg_unused_p): New function, | |
13539 | split out from df_set_unused_notes_for_mw. Return false for | |
13540 | partial references. Assert that mw_reg is a REG when returning true. | |
13541 | (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc. | |
13542 | (df_whole_mw_reg_dead_p): New function, split out from | |
13543 | df_set_dead_notes_for_mw. Return false for partial references. | |
13544 | Assert that mw_reg is a REG when returning true. | |
13545 | (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc. | |
13546 | Remove redundant bitmap check. | |
13547 | ||
13548 | 2007-07-26 H.J. Lu <hongjiu.lu@intel.com> | |
13549 | ||
13550 | * config/ia64/t-ia64 ($(T)crtbegin.o): Removed. | |
13551 | ($(T)crtend.o): Likwise. | |
13552 | ($(T)crtbeginS.o): Likwise. | |
13553 | ($(T)crtendS.o): Likwise. | |
13554 | ($(T)crtfastmath.o): Likwise. | |
13555 | ||
13556 | 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz> | |
13557 | ||
13558 | * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed. | |
13559 | * function.h (dom_computed, n_bbs_in_dom_tree): New macros. | |
13560 | * basic-block.h (struct control_flow_graph): Added x_dom_computed | |
13561 | and x_n_bbs_in_dom_tree fields. | |
13562 | ||
13563 | 2007-07-26 Steve Ellcey <sje@cup.hp.com> | |
13564 | ||
13565 | PR tree-optimization/32087 | |
13566 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): | |
13567 | Do not call scale_bbs_frequencies_int with prob of zero. | |
13568 | ||
13569 | 2007-07-26 Julian Brown <julian@codesourcery.com> | |
13570 | ||
13571 | * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds) | |
13572 | (neon_element_bits): Add prototypes. | |
13573 | * config/arm/arm.c (bounds_check, neon_lane_bounds) | |
13574 | (neon_const_bounds, neon_element_bits): New functions. | |
13575 | * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi) | |
13576 | (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi) | |
13577 | (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi) | |
13578 | (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>) | |
13579 | (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>) | |
13580 | (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>) | |
13581 | (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>) | |
13582 | (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>) | |
13583 | (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>) | |
13584 | (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>) | |
13585 | (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>) | |
13586 | (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>) | |
13587 | (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks. | |
13588 | ||
13589 | 2007-07-26 Nathan Froyd <froydnj@codesourcery.com> | |
13590 | ||
13591 | * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo. | |
13592 | (HAVE_AS_GNU_ATTRIBUTE): Undefine. | |
13593 | ||
13594 | 2007-07-26 Mark Shinwell <shinwell@codesourcery.com> | |
13595 | Julian Brown <julian@codesourcery.com> | |
13596 | ||
13597 | * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New. | |
13598 | * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New. | |
13599 | * config/arm/cortex-a8.md: New. | |
13600 | * config/arm/cortex-a8-neon.md: New. | |
13601 | * config/arm/neon-schedgen.ml: New. | |
13602 | * config/arm/neon.md (vqh_mnem): New. | |
13603 | (neon_type): New. | |
13604 | (Is_float_mode): New. | |
13605 | (Scalar_mul_8_16): New. | |
13606 | (Is_d_reg): New. | |
13607 | (V_mode_nunits): New. | |
13608 | (All instruction patterns): Annotate with neon_type attribute | |
13609 | values. | |
13610 | * config/arm/arm.md: Include cortex-a8.md. | |
13611 | (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab | |
13612 | values. | |
13613 | Annotate instruction patterns accordingly. | |
13614 | (generic_sched): Do not use generic scheduling for Cortex-A8. | |
13615 | (generic_vfp): Do not use generic VFP scheduling for Cortex-A8. | |
13616 | ||
13617 | 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com> | |
13618 | ||
13619 | * fold-const.c (fold_read_from_constant_string): Use | |
13620 | build_int_cst_type. | |
13621 | * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. | |
13622 | ||
13623 | 2007-07-26 Nick Clifton <nickc@redhat.com> | |
13624 | ||
13625 | * tree-ssa-operands.h: Change copyright header to refer to version | |
13626 | 3 of the GNU General Public License and to point readers at the | |
13627 | COPYING3 file and the FSF's license web page. | |
13628 | * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c, | |
13629 | sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c, | |
13630 | tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c, | |
13631 | targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h, | |
13632 | tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c, | |
13633 | hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c, | |
13634 | flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c, | |
13635 | opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c, | |
13636 | gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c, | |
13637 | cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c, | |
13638 | rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c, | |
13639 | optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c, | |
13640 | tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h, | |
13641 | genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c, | |
13642 | reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c, | |
13643 | c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c, | |
13644 | rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h, | |
13645 | tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h, | |
13646 | diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c, | |
13647 | gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c, | |
13648 | input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def, | |
13649 | gensupport.h, builtin-attrs.def, sync-builtins.def, params.c, | |
13650 | cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c, | |
13651 | graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c, | |
13652 | genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c, | |
13653 | tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h, | |
13654 | reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h, | |
13655 | real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c, | |
13656 | omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h, | |
13657 | tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c, | |
13658 | regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h, | |
13659 | tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c, | |
13660 | scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c, | |
13661 | double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h, | |
13662 | dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c, | |
13663 | gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c, | |
13664 | hosthooks.h, c-objc-common.h, caller-save.c, graph.c, | |
13665 | ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c, | |
13666 | c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h, | |
13667 | tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c, | |
13668 | xcoffout.h, tree-ssa-propagate.c, ipa-utils.c, | |
13669 | tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h, | |
13670 | gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c, | |
13671 | mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c, | |
13672 | alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c, | |
13673 | dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h, | |
13674 | expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h, | |
13675 | genattrtab.c, genconditions.c, genattr.c, optc-gen.awk, | |
13676 | timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c, | |
13677 | tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c, | |
13678 | recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c, | |
13679 | dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h, | |
13680 | matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c, | |
13681 | tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c, | |
13682 | lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h, | |
13683 | ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c, | |
13684 | ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h, | |
13685 | langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h, | |
13686 | sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c, | |
13687 | gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c, | |
13688 | ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c, | |
13689 | init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c, | |
13690 | loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c, | |
13691 | mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h, | |
13692 | opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in, | |
13693 | insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c, | |
13694 | tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def, | |
13695 | dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c, | |
13696 | bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c, | |
13697 | coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h, | |
13698 | stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c, | |
13699 | cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c, | |
13700 | tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c, | |
13701 | loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c, | |
13702 | lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c, | |
13703 | tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c, | |
13704 | tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt, | |
13705 | ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c, | |
13706 | varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c, | |
13707 | sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c, | |
13708 | target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c, | |
13709 | omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h, | |
13710 | intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c, | |
13711 | sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h, | |
13712 | genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c, | |
13713 | tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h, | |
13714 | bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c, | |
13715 | cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c, | |
13716 | cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk, | |
13717 | tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c, | |
13718 | c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c, | |
13719 | fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c, | |
13720 | vecprim.h, basic-block.h, tree-ssa-structalias.c, | |
13721 | tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c, | |
13722 | passes.c, genconstants.c, c-incpath.c, c-incpath.h, | |
13723 | struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c, | |
13724 | varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h, | |
13725 | reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y, | |
13726 | stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h, | |
13727 | params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h, | |
13728 | tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c, | |
13729 | convert.c, convert.h, langhooks-def.h, reload1.c, | |
13730 | tree-ssa-operands.c: Likewise. | |
13731 | ||
13732 | 2007-07-26 Jan Hubicka <jh@suse.cz> | |
13733 | ||
13734 | * tree-ssa-live.c: Include debug.h and flags.h. | |
13735 | (mark_scope_block_unused): New function. | |
13736 | (remove_unused_scope_block_p): New function. | |
13737 | (remove_unused_locals): Remove unused blocks too. | |
13738 | ||
13739 | 2007-07-25 Ian Lance Taylor <iant@google.com> | |
13740 | ||
13741 | * combine.c (combine_max_regno): Remove. Remove all uses. | |
13742 | (struct reg_stat_struct): Rename from struct reg_stat. | |
13743 | (reg_stat_type): Define, and declare VECs. | |
13744 | (reg_stat): Change from pointer to VEC. Change all uses. | |
13745 | (combine_split_insns): New static function. | |
13746 | (try_combine, find_split_point): Call it instead of split_insns. | |
13747 | ||
13748 | 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> | |
13749 | ||
13750 | * cfghooks.c (split_block): Fix the information about loop latch. | |
13751 | ||
13752 | 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> | |
13753 | ||
13754 | * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches. | |
13755 | ||
13756 | 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> | |
13757 | ||
13758 | * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): | |
13759 | Scan the new edge for loop exit info. | |
13760 | ||
13761 | 2007-07-25 Andreas Tobler <a.tobler@schweiz.org> | |
13762 | ||
13763 | * config/darwin.c: Include debug.h. | |
13764 | ||
13765 | 2007-07-25 Steve Ellcey <sje@cup.hp.com> | |
13766 | ||
13767 | PR target/32218 | |
13768 | * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type. | |
13769 | ||
13770 | 2007-07-25 Steve Ellcey <sje@cup.hp.com> | |
13771 | ||
13772 | * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode. | |
13773 | (HARD_REGNO_MODE_OK): Ditto. | |
13774 | (MODES_TIEABLE_P): Ditto. | |
13775 | (HARD_REGNO_CALLER_SAVE_MODE): Ditto. | |
13776 | (CLASS_MAX_NREGS): Ditto. | |
13777 | * config/ia64/ia64.c (ia64_print_operand_address): Add R format. | |
13778 | * config/ia64/ia64.md (divsf3_internal_thr): Removed. | |
13779 | (divdf3_internal_thr): Removed. | |
13780 | * config/ia64/div.md: New file. | |
13781 | * config/ia64/constraints.md: Add H constraint. | |
13782 | ||
13783 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13784 | ||
13785 | * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount, | |
13786 | sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p, | |
13787 | sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not, | |
13788 | sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg, | |
13789 | sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b, | |
13790 | sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p, | |
13791 | sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c, | |
13792 | sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c, | |
13793 | sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap, | |
13794 | dump_sbitmap_file, debug_sbitmap, popcount_table, | |
13795 | sbitmap_popcount): Constify. | |
13796 | * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New. | |
13797 | (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap, | |
13798 | dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal, | |
13799 | sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg, | |
13800 | sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c, | |
13801 | sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c, | |
13802 | sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b, | |
13803 | sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg, | |
13804 | sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p, | |
13805 | sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap, | |
13806 | sbitmap_popcount, sbitmap_verify_popcount): Constify. | |
13807 | ||
13808 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13809 | ||
13810 | * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop, | |
13811 | bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits, | |
13812 | bitmap_first_set_bit, bitmap_and, bitmap_and_into, | |
13813 | bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, | |
13814 | bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, | |
13815 | bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p, | |
13816 | bitmap_intersect_p, bitmap_intersect_compl_p, | |
13817 | bitmap_ior_and_compl, bitmap_ior_and_compl_into, | |
13818 | debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash): | |
13819 | Constify. | |
13820 | * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p, | |
13821 | bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and, | |
13822 | bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, | |
13823 | bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor, | |
13824 | bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into, | |
13825 | debug_bitmap, debug_bitmap_file, bitmap_print, | |
13826 | bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init, | |
13827 | bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. | |
13828 | ||
13829 | 2007-07-25 Daniel Berlin <dberlin@dberlin.org> | |
13830 | ||
13831 | * config/darwin.c (darwin_override_options): Additional fix for | |
13832 | debug info formats that don't support var tracking. | |
13833 | ||
13834 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13835 | ||
13836 | * cselib.c (entry_and_rtx_equal_p): Constify. | |
13837 | * gengtype.c (output_mangled_typename, write_types, write_local): | |
13838 | Likewise. | |
13839 | * gengtype.h (const_type_p): New. | |
13840 | * see.c (eq_descriptor_extension, hash_descriptor_extension): | |
13841 | Constify. | |
13842 | * tlink.c (scan_linker_output): De-constify. | |
13843 | * tree-ssa-loop-im.c (memref_eq): Constify. | |
13844 | * tree-ssa-structalias.c (const_shared_bitmap_info_t): New. | |
13845 | (shared_bitmap_hash, shared_bitmap_eq): Constify. | |
13846 | ||
13847 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13848 | ||
13849 | * c-common.c (fname_as_string, c_type_hash): Constify. | |
13850 | * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. | |
13851 | * cgraph.c (edge_hash, edge_eq): Likewise. | |
13852 | * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise. | |
13853 | * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash, | |
13854 | reg_attrs_htab_eq): Likewise. | |
13855 | * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq): | |
13856 | Likewise. | |
13857 | * genautomata.c (const_reserv_sets_t, const_unit_decl_t, | |
13858 | const_decl_t, const_state_t, const_automata_list_el_t): New. | |
13859 | (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, | |
13860 | DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, | |
13861 | automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash, | |
13862 | insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp, | |
13863 | reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p, | |
13864 | automata_list_hash, automata_list_eq_p, compare_states_for_equiv, | |
13865 | compare_max_occ_cycle_nums, out_state_arcs_num, | |
13866 | compare_transition_els_num, units_cmp, state_reservs_cmp): | |
13867 | Constify. | |
13868 | * genmodes.c (cmp_modes): Likewise. | |
13869 | * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise. | |
13870 | * gimplify.c (compare_case_labels): Likewise. | |
13871 | * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise. | |
13872 | * loop-unroll.c (si_info_hash, ve_info_hash): Likewise. | |
13873 | * matrix-reorg.c (mtt_info_hash): Likewise. | |
13874 | * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise. | |
13875 | * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New. | |
13876 | (htab_hash_bucket, htab_hash_elem): Constify. | |
13877 | * tree-browser.c (TB_parent_eq): Likewise. | |
13878 | * tree-scalar-evolution.c (hash_scev_info): Likewise. | |
13879 | * tree-ssa-alias.c (sort_tags_by_id): Likewise. | |
13880 | * tree-ssa-coalesce.c (const_coalesce_pair_p): New. | |
13881 | (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs): | |
13882 | Constify. | |
13883 | * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise. | |
13884 | * tree-ssa-pre.c (const_expr_pred_trans_t): New. | |
13885 | (expr_pred_trans_hash, expr_pred_trans_eq): Constify. | |
13886 | * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t, | |
13887 | const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t): | |
13888 | New. | |
13889 | (vn_reference_op_eq, vn_reference_hash, vn_reference_eq, | |
13890 | vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash, | |
13891 | vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify. | |
13892 | * tree-ssa-threadupdate.c (redirection_data_hash, | |
13893 | redirection_data_eq): Likewise. | |
13894 | * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise. | |
13895 | * tree-ssa.c (var_ann_eq): Likewise. | |
13896 | * tree-vrp.c (compare_case_labels): Likewise. | |
13897 | * tree.c (int_cst_hash_hash, int_cst_hash_eq, | |
13898 | tree_map_base_marked_p, type_hash_marked_p, tree_check_failed, | |
13899 | tree_not_check_failed, tree_class_check_failed, | |
13900 | tree_range_check_failed, tree_not_class_check_failed, | |
13901 | omp_clause_check_failed, omp_clause_range_check_failed, | |
13902 | tree_contains_struct_check_failed, tree_operand_check_failed): | |
13903 | Likewise. | |
13904 | * tree.h (tree_contains_struct_check_failed, tree_check_failed, | |
13905 | tree_not_check_failed, tree_class_check_failed, | |
13906 | tree_range_check_failed, tree_not_class_check_failed, | |
13907 | tree_operand_check_failed, omp_clause_operand_check_failed, | |
13908 | tree_operand_length): Likewise. | |
13909 | * var-tracking.c (const_variable): New. | |
13910 | (variable_htab_hash, variable_htab_eq): Constify. | |
13911 | * varasm.c (const_desc_hash): Likewise. | |
13912 | ||
13913 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13914 | ||
13915 | * expr.c (handled_component_p): Constify. | |
13916 | * fold-const.c (fit_double_type): Likewise. | |
13917 | * real.h (real_value_from_int_cst): Likewise. | |
13918 | * tree-flow-inline.h (gimple_in_ssa_p, | |
13919 | gimple_aliases_computed_p, gimple_addressable_vars, | |
13920 | gimple_call_clobbered_vars, gimple_referenced_vars, | |
13921 | gimple_global_var, gimple_nonlocal_all, gimple_var_anns, | |
13922 | end_htab_p, end_referenced_vars_p, var_ann, function_ann, | |
13923 | may_aliases, end_readonly_imm_use_p, has_zero_uses, | |
13924 | has_single_use, single_imm_use, num_imm_uses, is_exec_stmt, | |
13925 | is_label_stmt, is_global_var, phi_ssa_name_p, | |
13926 | factoring_name_p, is_call_clobbered, tree_common_ann, | |
13927 | op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p, | |
13928 | unmodifiable_var_p, array_ref_contains_indirect_ref, | |
13929 | ref_contains_array_ref, lookup_subvars_for_var, | |
13930 | var_can_have_subvars, overlap_subvar, gimple_ssa_operands, | |
13931 | gimple_mem_ref_stats): Likewise. | |
13932 | * tree-flow.h (tree_common_ann, var_ann, function_ann, | |
13933 | may_aliases, is_exec_stmt, is_label_stmt, | |
13934 | ref_contains_array_ref, array_ref_contains_indirect_ref, | |
13935 | var_can_have_subvars, overlap_subvar, is_call_clobbered, | |
13936 | unmodifiable_var_p): Likewise. | |
13937 | * tree-gimple.c (is_gimple_min_invariant): Likewise. | |
13938 | * tree-gimple.h (is_gimple_min_invariant): Likewise. | |
13939 | * tree.c (type_hash_list, attribute_hash_list, tree_size, | |
13940 | cst_and_fits_in_hwi, real_value_from_int_cst, | |
13941 | build_real_from_int_cst, integer_zerop, integer_onep, | |
13942 | integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2, | |
13943 | tree_floor_log2, real_zerop, real_onep, real_twop, | |
13944 | real_minus_onep, really_constant_p, purpose_member, chain_member, | |
13945 | list_length, fields_length, int_size_in_bytes, bit_position, | |
13946 | int_bit_position, byte_position, int_byte_position, expr_align, | |
13947 | array_type_nelts, tree_node_structure, | |
13948 | type_contains_placeholder_1, iterative_hash_pointer, | |
13949 | is_attribute_with_length_p, is_attribute_p, check_qualified_type, | |
13950 | tree_map_base_eq, type_hash_list, type_hash_eq, | |
13951 | attribute_hash_list, type_num_arguments, tree_int_cst_equal, | |
13952 | tree_int_cst_lt, tree_int_cst_compare, host_integerp, | |
13953 | tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, | |
13954 | simple_cst_list_equal, compare_tree_int, iterative_hash_expr, | |
13955 | int_fits_type_p, get_containing_scope, decl_function_context, | |
13956 | decl_type_context, omp_clause_operand_check_failed, | |
13957 | initializer_zerop, int_cst_value, num_ending_zeros): Likewise. | |
13958 | * tree.h (omp_clause_operand_check_failed, tree_size, | |
13959 | build_real_from_int_cst, array_type_nelts, purpose_member, | |
13960 | tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare, | |
13961 | host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, | |
13962 | is_attribute_p, check_qualified_type, expr_align, | |
13963 | int_size_in_bytes, bit_position, int_bit_position, byte_position, | |
13964 | int_byte_position, list_length, fields_length, initializer_zerop, | |
13965 | integer_zerop, integer_onep, integer_all_onesp, integer_pow2p, | |
13966 | integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros, | |
13967 | tree_node_structure, handled_component_p, get_containing_scope, | |
13968 | decl_function_context, decl_type_context, real_zerop, | |
13969 | type_num_arguments, fit_double_type, really_constant_p, | |
13970 | int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr, | |
13971 | compare_tree_int, chain_member, simple_cst_list_equal, real_onep, | |
13972 | real_twop, real_minus_onep, int_cst_value): Likewise. | |
13973 | ||
13974 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
13975 | ||
13976 | * cfglayout.c (insn_scope, insn_line): Constify. | |
13977 | * emit-rtl.c (const_int_htab_hash, const_int_htab_eq, | |
13978 | const_double_htab_hash, const_double_htab_eq, | |
13979 | mem_attrs_htab_hash): Likewise. | |
13980 | * loop-iv.c (biv_eq): Likewise. | |
13981 | * print-rtl.c (print_rtx, print_decl_name, print_mem_expr, | |
13982 | print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range, | |
13983 | debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl): | |
13984 | Likewise. | |
13985 | * rtl-error.c (location_for_asm, diagnostic_for_asm, | |
13986 | error_for_asm, warning_for_asm, _fatal_insn, | |
13987 | _fatal_insn_not_found): Likewise. | |
13988 | * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat, | |
13989 | rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1, | |
13990 | rtl_check_failed_type2, rtl_check_failed_code1, | |
13991 | rtl_check_failed_code2, rtl_check_failed_code_mode, | |
13992 | rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise. | |
13993 | * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, | |
13994 | rtl_check_failed_type2, rtl_check_failed_code1, | |
13995 | rtl_check_failed_code2, rtl_check_failed_code_mode, | |
13996 | rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND, | |
13997 | SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs, | |
13998 | shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p, | |
13999 | get_pool_mode, insn_line, insn_file, simplify_replace_rtx, | |
14000 | mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p, | |
14001 | rtx_unstable_p, get_integer_term, get_related_value, | |
14002 | offset_within_block_p, reg_mentioned_p, count_occurrences, | |
14003 | reg_referenced_p, reg_used_between_p, no_labels_between_p, | |
14004 | single_set_2, multiple_sets, set_noop_p, refers_to_regno_p, | |
14005 | reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p, | |
14006 | find_reg_note, find_regno_note, find_reg_equal_equiv_note, | |
14007 | find_constant_src, find_reg_fusage, find_regno_fusage, | |
14008 | pure_call_p, remove_note, side_effects_p, volatile_refs_p, | |
14009 | volatile_insn_p, may_trap_p, may_trap_after_code_motion_p, | |
14010 | may_trap_or_fault_p, inequality_comparisons_p, tablejump_p, | |
14011 | computed_jump_p, auto_inc_p, in_expr_list_p, | |
14012 | remove_node_from_expr_list, loc_mentioned_in_p, | |
14013 | label_is_jump_target_p, reversed_comparison_code_parts, | |
14014 | debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find, | |
14015 | print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single, | |
14016 | print_inline_rtx): Likewise. | |
14017 | * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p, | |
14018 | computed_jump_p_1, nonzero_bits1, rtx_unstable_p, | |
14019 | rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p, | |
14020 | get_integer_term, get_related_value, offset_within_block_p, | |
14021 | count_occurrences, reg_mentioned_p, no_labels_between_p, | |
14022 | reg_used_between_p, reg_referenced_p, single_set_2, | |
14023 | multiple_sets, set_noop_p, refers_to_regno_p, | |
14024 | reg_overlap_mentioned_p, dead_or_set_p, | |
14025 | covers_regno_no_parallel_p, covers_regno_p, | |
14026 | dead_or_set_regno_p, find_reg_note, find_regno_note, | |
14027 | find_reg_equal_equiv_note, find_constant_src, find_reg_fusage, | |
14028 | find_regno_fusage, pure_call_p, remove_note, in_expr_list_p, | |
14029 | remove_node_from_expr_list, volatile_insn_p, volatile_refs_p, | |
14030 | side_effects_p, may_trap_p_1, may_trap_p, | |
14031 | may_trap_after_code_motion_p, may_trap_or_fault_p, | |
14032 | inequality_comparisons_p, tablejump_p, computed_jump_p_1, | |
14033 | computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb, | |
14034 | subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise. | |
14035 | * simplify-rtx.c (neg_const_int, plus_minus_operand_p, | |
14036 | mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p): | |
14037 | Likewise. | |
14038 | * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm, | |
14039 | warning_for_asm): Likewise. | |
14040 | * tree.h (print_rtl): Likewise. | |
14041 | * varasm.c (get_pool_mode): Likewise. | |
14042 | ||
14043 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14044 | ||
14045 | * c-lex.c (c_lex_with_flags, lex_string): Constify. | |
14046 | * c-ppoutput.c (print_line, pp_dir_change): Likewise. | |
14047 | * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. | |
14048 | * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise. | |
14049 | * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise. | |
14050 | * ddg.c (compare_sccs): Likewise. | |
14051 | * df-scan.c (df_ref_compare, df_mw_compare): Likewise. | |
14052 | * dfp.c (decimal_real_from_string, decimal_to_decnumber, | |
14053 | decimal_to_binary, decimal_do_compare, decimal_real_to_decimal, | |
14054 | decimal_do_fix_trunc, decimal_real_to_integer, | |
14055 | decimal_real_to_integer2, decimal_real_maxval): Likewise. | |
14056 | * dse.c (const_group_info_t): New. | |
14057 | (invariant_group_base_eq, invariant_group_base_hash): Constify. | |
14058 | * dwarf2out.c (const_dw_die_ref): New. | |
14059 | (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify. | |
14060 | * tree-browser.c (TB_parent_eq): Likewise. | |
14061 | * unwind-dw2-fde.c (__register_frame_info_bases, | |
14062 | __deregister_frame_info_bases, fde_unencoded_compare, fde_split, | |
14063 | add_fdes, linear_search_fdes, binary_search_unencoded_fdes): | |
14064 | Likewise. | |
14065 | * unwind-dw2-fde.h (get_cie, next_fde): Likewise. | |
14066 | * unwind-dw2.c (uw_frame_state_for): Likewise. | |
14067 | * value-prof.c (histogram_hash, histogram_eq): Likewise. | |
14068 | * value-prof.h (const_histogram_value): New. | |
14069 | ||
14070 | 2007-07-25 Richard Sandiford <richard@codesourcery.com> | |
14071 | ||
14072 | * config/mips/mips.c (machine_function): Add | |
14073 | initialized_mips16_gp_pseudo_p. | |
14074 | (mips16_gp_pseudo_reg): Do not emit the initialization of | |
14075 | mips16_gp_pseudo_rtx when being called from the gimple cost- | |
14076 | calculation routines; emit it on the first use outside those | |
14077 | routines. | |
14078 | ||
14079 | 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14080 | ||
14081 | * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree): | |
14082 | New. | |
14083 | ||
14084 | * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2, | |
14085 | RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK, | |
14086 | RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3, | |
14087 | RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6, | |
14088 | RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND): | |
14089 | Preserve const-ness of parameters through use of __typeof(), | |
14090 | also constify and tidy. | |
14091 | ||
14092 | * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2, | |
14093 | TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4, | |
14094 | NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5, | |
14095 | CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK, | |
14096 | OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK, | |
14097 | GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK, | |
14098 | PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK, | |
14099 | TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK, | |
14100 | TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise. | |
14101 | ||
14102 | 2007-07-25 Julian Brown <julian@codesourcery.com> | |
14103 | Mark Shinwell <shinwell@codesourcery.com> | |
14104 | ||
14105 | * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to... | |
14106 | (alpha_mangle_type): This. | |
14107 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14108 | (TARGET_MANGLE_TYPE): Define this instead. | |
14109 | * config/arm/arm-protos.h (arm_mangle_type): Add prototype. | |
14110 | * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook. | |
14111 | (arm_init_neon_builtins): Fix comment. | |
14112 | (arm_mangle_map_entry): New. | |
14113 | (arm_mangle_map): New. | |
14114 | (arm_mangle_type): New. | |
14115 | * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to... | |
14116 | (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict | |
14117 | mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. | |
14118 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14119 | (TARGET_MANGLE_TYPE): Define this instead. | |
14120 | * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to... | |
14121 | (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict | |
14122 | mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. | |
14123 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14124 | (TARGET_MANGLE_TYPE): Define this instead. | |
14125 | * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename | |
14126 | to... | |
14127 | (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT. | |
14128 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14129 | (TARGET_MANGLE_TYPE): Define this instead. | |
14130 | * config/s390/s390.c (s390_mangle_fundamental_type): Rename to... | |
14131 | (s390_mangle_type): This. | |
14132 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14133 | (TARGET_MANGLE_TYPE): Define this instead. | |
14134 | * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to... | |
14135 | (sparc_mangle_type): This. | |
14136 | (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. | |
14137 | (TARGET_MANGLE_TYPE): Define this instead. | |
14138 | * cp/mangle.c (write_type): Call mangle_type target hook on all | |
14139 | types before mangling. Use original type, not main variant, as | |
14140 | argument. | |
14141 | * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to... | |
14142 | (TARGET_MANGLE_TYPE): This. | |
14143 | * target.h (gcc_target): Rename mangle_fundamental_type to | |
14144 | mangle_type. | |
14145 | * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to... | |
14146 | (TARGET_MANGLE_TYPE): This. Note slightly different semantics. | |
14147 | ||
14148 | 2007-07-25 Julian Brown <julian@codesourcery.com> | |
14149 | Paul Brook <paul@codesourcery.com> | |
14150 | Joseph Myers <joseph@codesourcery.com> | |
14151 | Mark Shinwell <shinwell@codesourcery.com> | |
14152 | ||
14153 | * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi. | |
14154 | * config.gcc (arm*-*-*): Add arm_neon.h to extra headers. | |
14155 | (with_fpu): Allow --with-fpu=neon. | |
14156 | * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. | |
14157 | * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. | |
14158 | * config/arm/arm-modes.def (EI, OI, CI, XI): New modes. | |
14159 | * config/arm/arm-protos.h (neon_immediate_valid_for_move) | |
14160 | (neon_immediate_valid_for_logic, neon_output_logic_immediate) | |
14161 | (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret) | |
14162 | (neon_emit_pair_result_insn, neon_disambiguate_copy) | |
14163 | (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad) | |
14164 | (output_move_neon): Add prototypes. | |
14165 | * config/arm/arm.c (FL_NEON): New flag for NEON processor capability. | |
14166 | (all_fpus): Add FPUTYPE_NEON. | |
14167 | (fp_model_for_fpu): Add NEON field. | |
14168 | (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers. | |
14169 | (arm_arg_partial_bytes): Allow NEON vectors to be passed partially | |
14170 | in registers. | |
14171 | (arm_legitimate_address_p): Don't support fancy addressing for NEON | |
14172 | structure moves. | |
14173 | (thumb2_legitimate_address_p): Likewise. | |
14174 | (neon_valid_immediate): Recognize and prepare constants suitable for | |
14175 | NEON instructions. | |
14176 | (neon_immediate_valid_for_move): New function. Recognize and prepare | |
14177 | immediates for NEON move instructions. | |
14178 | (neon_immediate_valid_for_logic): New function. Recognize and | |
14179 | prepare immediates for NEON logic instructions. | |
14180 | (neon_output_logic_immediate): New function. Create asm string | |
14181 | suitable for outputting immediate logic instructions. | |
14182 | (neon_pairwise_reduce): New function. Implement reduction using | |
14183 | pairwise operations. | |
14184 | (neon_expand_vector_init): New function. Expand a (possibly | |
14185 | non-constant) vector initialization. | |
14186 | (neon_vector_mem_operand): New function. Memory operands supported | |
14187 | for quad-word loads/stores to/from ARM or NEON registers. Don't | |
14188 | allow base+offset addressing for core regs. | |
14189 | (neon_struct_mem_operand): New function. Valid mems for NEON | |
14190 | structure moves. | |
14191 | (coproc_secondary_reload_class): Enable NEON registers to be loaded | |
14192 | from neon_vector_mem_operand addresses without a secondary register. | |
14193 | (add_minipool_forward_ref): Handle >8-byte minipool entries. | |
14194 | (add_minipool_backward_ref): Likewise. | |
14195 | (dump_minipool): Likewise. | |
14196 | (push_minipool_fix): Likewise. | |
14197 | (output_move_quad): New function. Output quad-word moves, loads and | |
14198 | stores using ARM registers. | |
14199 | (output_move_vfp): Add support for vectors in VFP (NEON) D | |
14200 | registers. | |
14201 | (output_move_neon): Output a NEON load/store to/from a quadword | |
14202 | register. | |
14203 | (arm_print_operand): Implement new codes: | |
14204 | - 'c' for unadorned integers (without a # sign). | |
14205 | - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian | |
14206 | mode. | |
14207 | - 'e', 'f' for the low and high D parts of a NEON Q register. | |
14208 | - 'q' outputs a NEON Q register. | |
14209 | - 'h' outputs ranges of D registers for VLDM/VSTM etc. | |
14210 | - 'T' prints NEON opcode features from a coded bitmask. | |
14211 | - 'F' is similar to T, but signed/unsigned codes both print as | |
14212 | 'i'. | |
14213 | - 't' is similar to T, but 'u' is printed instead of 'p'. | |
14214 | - 'O' prints 'r' if NEON instruction should perform rounding (as | |
14215 | specified by bitmask), else prints nothing. | |
14216 | - '#' is a punctuation character to stop operand numbers from | |
14217 | running together with following digits in the assembler | |
14218 | strings for instructions (when using mode attributes). | |
14219 | (arm_assemble_integer): Handle extra NEON vector modes. Permute | |
14220 | constant vectors in big-endian mode, where necessary. | |
14221 | (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers. | |
14222 | Handle EI, OI, CI, XI modes. | |
14223 | (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3) | |
14224 | (ashrv2si3): Rename IWMMXT2_BUILTINs to... | |
14225 | (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt) | |
14226 | (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names. | |
14227 | (neon_builtin_type_bits): Add enumeration, one bit for each vector | |
14228 | type. | |
14229 | (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP) | |
14230 | (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros | |
14231 | to turn v8qi, etc. into bits defined above. | |
14232 | (neon_itype): New enumeration. Classifications of NEON builtins. | |
14233 | (neon_builtin_datum): Define struct. Contains information about | |
14234 | a single builtin (with multiple modes). | |
14235 | (CF): Define helper macro for... | |
14236 | (VAR1...VAR10): Define builtins with a type, name and 1-10 different | |
14237 | modes. | |
14238 | (neon_builtin_data): New array. Define information about builtins | |
14239 | for use during initialization/expansion. | |
14240 | (arm_init_neon_builtins): New function. | |
14241 | (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is | |
14242 | true. | |
14243 | (neon_builtin_compare): New function. | |
14244 | (locate_neon_builtin_icode): New function. Find an insn code for a | |
14245 | builtin given a function code for that builtin. Also return type of | |
14246 | builtin (NEON_BINOP, NEON_UNOP etc.). | |
14247 | (builtin_arg): New enumeration. Types of arguments for builtins. | |
14248 | (arm_expand_neon_args): New function. Expand a generic NEON builtin. | |
14249 | Takes a variable argument list of builtin_arg types, terminated by | |
14250 | NEON_ARG_STOP. | |
14251 | (arm_expand_neon_builtin): New function. Expand a NEON builtin. | |
14252 | (neon_reinterpret): New function. Expand NEON reinterpret intrinsic. | |
14253 | (neon_emit_pair_result_insn): New function. Support returning pairs | |
14254 | of vectors via a pointer. | |
14255 | (neon_disambiguate_copy): New function. Set up operands for a | |
14256 | multi-word copy such that registers do not get clobbered. | |
14257 | (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >= | |
14258 | ARM_BUILTIN_NEON_BASE. | |
14259 | (arm_file_start): Set float-abi attribute for NEON. | |
14260 | (arm_vector_mode_supported_p): Enable NEON vector modes. | |
14261 | (arm_mangle_map_entry): New. | |
14262 | (arm_mangle_map): New. | |
14263 | (arm_mangle_vector_type): New. | |
14264 | * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__ | |
14265 | when appropriate. | |
14266 | (TARGET_NEON): New macro. Target supports NEON. | |
14267 | (fputype): Add FPUTYPE_NEON. | |
14268 | (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used | |
14269 | for vectorization based on command-line arg. | |
14270 | (NEON_REGNO_OK_FOR_NREGS): Define. | |
14271 | (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE) | |
14272 | (VALID_NEON_STRUCT_MODE): Define. | |
14273 | (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation. | |
14274 | (arm_builtins): Add ARM_BUILTIN_NEON_BASE. | |
14275 | * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec. | |
14276 | (consttable_16): Add pattern for outputting 16-byte minipool | |
14277 | entries. | |
14278 | (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in | |
14279 | vec-common.md). | |
14280 | (vec-common.md, neon.md): Include md files. | |
14281 | * config/arm/arm.opt (mvectorize-with-neon-quad): Add option. | |
14282 | * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define. | |
14283 | (memory_constraint "Ut", "Un", "Us"): Define. | |
14284 | * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros. | |
14285 | (MMX_char): New mode attribute. | |
14286 | (addv8qi3, addv4hi3, addv2si3): Remove. Replace with... | |
14287 | (*add<mode>3_iwmmxt): New insn pattern. | |
14288 | (subv8qi3, subv4hi3, subv2si3): Remove. Replace with... | |
14289 | (*sub<mode>3_iwmmxt): New insn pattern. | |
14290 | (mulv4hi3): Rename to... | |
14291 | (*mulv4hi3_iwmmxt): This. | |
14292 | (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3) | |
14293 | (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3) | |
14294 | (uminv4hi3, uminv2si3): Remove. Replace with... | |
14295 | (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt) | |
14296 | (*umin<mode>3_iwmmxt): These. | |
14297 | (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with... | |
14298 | (ashr<mode>3_iwmmxt): This new pattern. | |
14299 | (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with... | |
14300 | (lshr<mode>3_iwmmxt): This new pattern. | |
14301 | (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with... | |
14302 | (ashl<mode>3_iwmmxt): This new pattern. | |
14303 | * config/arm/neon-docgen.ml: New file. Generate documentation for | |
14304 | intrinsics. | |
14305 | * config/arm/neon-gen.ml: New file. Generate arm_neon.h header. | |
14306 | * config/arm/arm_neon.h: New (autogenerated). | |
14307 | * config/arm/neon-testgen.ml: New file. Generate NEON tests | |
14308 | automatically. | |
14309 | * config/arm/neon.md: New file. Define NEON instructions. | |
14310 | * config/arm/neon.ml: New file. Abstract description of NEON | |
14311 | instructions, used to generate arm_neon.h header, documentation and | |
14312 | tests. | |
14313 | * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md. | |
14314 | * vec-common.md: New file. Shared parts for iWMMXt and NEON vector | |
14315 | support. | |
14316 | * doc/extend.texi (ARM Built-in Functions): Rename and remove | |
14317 | extraneous comma. | |
14318 | (ARM NEON Intrinsics): New subsection. | |
14319 | * doc/arm-neon-intrinsics.texi: New (autogenerated). | |
14320 | ||
14321 | 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net> | |
14322 | ||
14323 | * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove | |
14324 | prototype. | |
14325 | ||
14326 | 2007-07-24 Jan Hubicka <jh@suse.cz> | |
14327 | ||
14328 | * regclass.c (move_table): New type. | |
14329 | (move_cost, may_move_in_cost, may_move_out_cost): Use it. | |
14330 | (init_move_cost): Break out from ... | |
14331 | (init_reg_sets_1): ... here; simplify computation of | |
14332 | have_regs-of_mode and contains_reg_of_mode. | |
14333 | (record_reg_classes): Unswitch internal loops. | |
14334 | (copy_cost): Trigger lazy initialization of move cost | |
14335 | (record_address_regs): Likewise. | |
14336 | ||
14337 | 2007-07-24 Daniel Berlin <dberlin@dberlin.org> | |
14338 | ||
14339 | * config/darwin.c (darwin_override_options): Don't force on | |
14340 | flag_var_tracking_uninit when no debug info is requested. | |
14341 | ||
14342 | 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> | |
14343 | ||
14344 | * cfgloop.c (init_loops_structure): New function. | |
14345 | (flow_loops_find): Create root of the loop tree unconditionally. | |
14346 | ||
14347 | 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com> | |
14348 | ||
14349 | * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert. | |
14350 | ||
14351 | 2007-07-24 Jan Hubicka <jh@suse.cz> | |
14352 | ||
14353 | * caller-save.c: Include ggc.h, gt-caller-save.h | |
14354 | (reg_save_code, reg_restore_code): Rename to ... | |
14355 | (cached_reg_save_code, cached_reg_restore_code): ... those. | |
14356 | (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New. | |
14357 | (reg_save_code, reg_restore_code): New functions. | |
14358 | (init_caller_save): Do not intialize | |
14359 | reg_save_code/reg_restore_code tables. | |
14360 | * Makefile.in: (gt-caller-save.h): New. | |
14361 | ||
14362 | 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com> | |
14363 | ||
14364 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand | |
14365 | with the mode of the original operand instead of | |
14366 | integer_one_node. | |
14367 | ||
14368 | 2007-07-23 Jan Hubicka <jH@suse.cz> | |
14369 | ||
14370 | * config/i386/i386.c (ix86_secondary_memory_needed): Break out to... | |
14371 | (inline_secondary_memory_needed): ... here. | |
14372 | (ix86_memory_move_cost): Break out to ... | |
14373 | (inline_memory_move_cost): ... here; add support for IN value of 2 for | |
14374 | maximum of input and output; fix handling of Q_REGS on 64bit. | |
14375 | (ix86_secondary_memory_needed): Microoptimize. | |
14376 | ||
14377 | 2007-07-23 Sebastian Pop <sebpop@gmail.com> | |
14378 | ||
14379 | * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr, | |
14380 | create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, | |
14381 | stmts_from_loop, known_dependences_p, build_rdg): New. | |
14382 | * tree-data-ref.h: Depends on graphds.h. | |
14383 | (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New. | |
14384 | (build_rdg): Declared. | |
14385 | * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h. | |
14386 | ||
14387 | 2007-07-23 Daniel Berlin <dberlin@dberlin.org> | |
14388 | ||
14389 | * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with | |
14390 | ccp_min_invariant. | |
14391 | ||
14392 | 2007-07-23 Peter Bergner <bergner@vnet.ibm.com> | |
14393 | Jakub Jelinek <jakub@redhat.com> | |
14394 | ||
14395 | PR middle-end/PR28690 | |
14396 | * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow | |
14397 | EQ compares. | |
14398 | * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER | |
14399 | and MEM_POINTER operands over REG and MEM operands. | |
14400 | (swap_commutative_operands_p): Change return value to bool. | |
14401 | * rtl.h: Update the corresponding prototype. | |
14402 | * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary | |
14403 | instead of gen_rtx_PLUS. | |
14404 | * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return | |
14405 | value to bool. Change function arguments to rtx's and update code | |
14406 | to match. | |
14407 | (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp | |
14408 | calls to match the new declaration. | |
14409 | * simplify-rtx.c (simplify_associative_operation): Don't | |
14410 | reorder simplify_binary_operation arguments. | |
14411 | ||
14412 | 2007-07-23 Richard Sandiford <richard@codesourcery.com> | |
14413 | ||
14414 | * config/mips/mips.c (override_options): Use mips_costs to derive | |
14415 | the default branch cost. | |
14416 | * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather | |
14417 | than mips_costs. | |
14418 | * config/mips/mips.opt (mbranch-cost=): New option. | |
14419 | * doc/invoke.texi (-mbranch-cost): Document new MIPS option. | |
14420 | ||
14421 | 2007-07-23 Richard Sandiford <richard@codesourcery.com> | |
14422 | ||
14423 | * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete. | |
14424 | (SECONDARY_MEMORY_NEEDED): Delete commented-out definition. | |
14425 | * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p | |
14426 | instead of GR_REG_CLASS_P and COP_REG_CLASS_P. | |
14427 | ||
14428 | 2007-07-23 Richard Sandiford <richard@codesourcery.com> | |
14429 | ||
14430 | * config/mips/constraints.md (ks): New constraint. | |
14431 | * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into... | |
14432 | (*add<mode>3_mips16): ...here. | |
14433 | ||
14434 | 2007-07-21 Uros Bizjak <ubizjak@gmail.com> | |
14435 | ||
14436 | * optabs.h (enum optab_index): Add new OTI_signbit. | |
14437 | (signbit_optab): Define corresponding macro. | |
14438 | (enum insn_code signbit_optab[]): Remove array. | |
14439 | * optabs.c (init_optabs): Initialize signbit_optab using init_optab. | |
14440 | (expand_copysign_absneg): If back end provides signbit insn, use it | |
14441 | instead of bit operations on floating point argument. | |
14442 | * builtins.c (enum insn_code signbit_optab[]): Remove array. | |
14443 | (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code | |
14444 | for availability of signbit insn. | |
14445 | ||
14446 | * config/i386/i386.md (signbit<mode>2): New insn pattern to implement | |
14447 | signbitf, signbit and signbitl built-ins as inline x87 intrinsics when | |
14448 | SSE mode is not active. | |
14449 | (isinf<mode>2): Disable for mfpmath=sse,387. | |
14450 | ||
14451 | 2007-07-22 Ben Elliston <bje@au.ibm.com> | |
14452 | ||
14453 | * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to | |
14454 | `class' parameter. | |
14455 | * struct-equiv.c (note_local_live): Likewise for `y_regno'. | |
14456 | ||
14457 | 2007-07-20 Richard Guenther <rguenther@suse.de> | |
14458 | ||
14459 | * tree-cfg.c (verify_expr): COND_EXPRs can have any | |
14460 | integral typed condition. | |
14461 | * tree-ssa.c (useless_type_conversion_p): Do not preserve | |
14462 | booleanness. Only preserve conversions from a non-base | |
14463 | type to a base type, not in general between types with | |
14464 | different TYPE_MIN_VALUE or TYPE_MAX_VALUE. | |
14465 | * tree.def (COND_EXPR): Document that the condition | |
14466 | can be of any integral type. | |
14467 | ||
14468 | 2007-07-20 Nigel Stephens <nigel@mips.com> | |
14469 | Richard Sandiford <richard@codesourcery.com> | |
14470 | ||
14471 | * config/mips/mips.h (mips_dwarf_regno): Declare. | |
14472 | (DBX_REGISTER_NUMBER): Remove redundant brackets. | |
14473 | (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way. | |
14474 | (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM) | |
14475 | (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete. | |
14476 | (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. | |
14477 | (REG_CLASS_NAMES): Update accordingly. | |
14478 | * config/mips/mips.c (mips_dwarf_regno): New array. | |
14479 | (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. | |
14480 | (mips_subword): Remove special handling for accumulator registers. | |
14481 | (override_options): Initiailize mips_dwarf_regno. Remove use | |
14482 | of ACC_HI_REG_P. | |
14483 | (mips_swap_registers): New function. | |
14484 | (mips_conditional_register_usage): Swap accumulator registers | |
14485 | around if TARGET_LITTLE_ENDIAN. | |
14486 | (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS. | |
14487 | * config/mips/constraints.md (h, l): Use the endianness to choose | |
14488 | between MD0_REG and MD1_REG. | |
14489 | * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string, | |
14490 | alternative-dependent template. | |
14491 | ||
14492 | 2007-07-20 Richard Sandiford <richard@codesourcery.com> | |
14493 | ||
14494 | * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of | |
14495 | no_new_pseudos. | |
14496 | ||
14497 | 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz> | |
14498 | ||
14499 | * function.c (thread_prologue_and_epilogue_insns): Fix exit | |
14500 | predecessor fallthru flags. | |
14501 | ||
14502 | 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz> | |
14503 | ||
14504 | * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands | |
14505 | of compare to the same type. | |
14506 | * cfgloopmanip.c (add_loop): Update information about loop exits. | |
14507 | (loop_version): Remove the innermost loop requirement. | |
14508 | * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds | |
14509 | to sizetype for pointers. | |
14510 | ||
14511 | 2007-07-18 H.J. Lu <hongjiu.lu@intel.com> | |
14512 | ||
14513 | * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd. | |
14514 | (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd. | |
14515 | (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td. | |
14516 | ||
14517 | * config/dfp-bit.c: Empty for TFmode conversions. | |
14518 | ||
14519 | 2007-07-18 Caroline Tice <ctice@apple.com> | |
14520 | ||
14521 | * var-tracking.c (find_src_status): Check for COND_EXEC insns | |
14522 | and handle them correctly; check that src is not NULL before | |
14523 | trying to use it. | |
14524 | (find_src_set_src): Likewise. | |
14525 | ||
14526 | 2007-07-18 Bob Wilson <bob.wilson@acm.org> | |
14527 | ||
14528 | * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New. | |
14529 | (struct alignment_context, init_alignment_context): New. | |
14530 | (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New. | |
14531 | * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default. | |
14532 | (XCHAL_HAVE_S32C1I): Likewise. | |
14533 | (TARGET_RELEASE_SYNC, TARGET_S32C1I): New. | |
14534 | * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant. | |
14535 | (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise. | |
14536 | (ATOMIC, HQI): New macros. | |
14537 | (memory_barrier, *memory_barrier): New. | |
14538 | (sync_lock_releasesi): New. | |
14539 | (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New. | |
14540 | (sync_lock_test_and_set<mode>): New. | |
14541 | (sync_<atomic><mode>): New. | |
14542 | (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New. | |
14543 | * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New. | |
14544 | (xtensa_expand_atomic): New. | |
14545 | ||
14546 | 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14547 | ||
14548 | PR target/30652 | |
14549 | ||
14550 | * builtins.c (expand_builtin_interclass_mathfn): Provide a generic | |
14551 | transformation for builtin ISNORMAL. | |
14552 | (expand_builtin): Handle BUILT_IN_ISNORMAL. | |
14553 | * builtins.def (BUILT_IN_ISNORMAL): New. | |
14554 | * doc/extend.texi: Document isnormal. | |
14555 | ||
14556 | 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14557 | ||
14558 | PR target/30652 | |
14559 | ||
14560 | * builtins.c (expand_builtin_interclass_mathfn): Allow for missing | |
14561 | optabs infrastructure. Provide generic implementation for | |
14562 | FINITE/ISFINITE. | |
14563 | (expand_builtin): Handle FINITE/ISFINITE. | |
14564 | (fold_builtin_classify): Make ISFINITE canonical instead of FINITE. | |
14565 | (fold_builtin_1): Likewise. | |
14566 | ||
14567 | * builtins.def (BUILT_IN_ISFINITE): New. | |
14568 | ||
14569 | * doc/extend.texi: Document isfinite. | |
14570 | ||
14571 | 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14572 | ||
14573 | PR target/30652 | |
14574 | PR middle-end/20558 | |
14575 | ||
14576 | * builtins.c (expand_builtin_interclass_mathfn): Provide a | |
14577 | generic fallback for isinf. | |
14578 | * c-cppbuiltin.c (builtin_define_float_constants): Move FP max | |
14579 | calculation code ... | |
14580 | * real.c (get_max_float): ... to here. | |
14581 | * real.h (get_max_float): New. | |
14582 | ||
14583 | 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
14584 | ||
14585 | PR middle-end/32668 | |
14586 | ||
14587 | * builtin-attrs.def (ATTR_TYPEGENERIC, | |
14588 | ATTR_CONST_NOTHROW_TYPEGENERIC): New. | |
14589 | ||
14590 | * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN, | |
14591 | BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, | |
14592 | BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER, | |
14593 | BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC. | |
14594 | ||
14595 | * c-common.c (handle_type_generic_attribute): New. | |
14596 | (c_common_attribute_table): Add "type generic". | |
14597 | ||
14598 | * c-typeck.c (convert_arguments): Handle "type generic" functions. | |
14599 | ||
14600 | 2007-07-18 Daniel Berlin <dberlin@dberlin.org> | |
14601 | ||
14602 | * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression | |
14603 | * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR | |
14604 | properly. | |
14605 | ||
14606 | 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
14607 | ||
14608 | PR target/32808 | |
14609 | * config/cris/cris.c (cris_print_index): Don't use XEXP before | |
14610 | checking that the operand is an expression. | |
14611 | ||
14612 | 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org> | |
14613 | Danny Smith <dannysmith@users.sourceforge.net> | |
14614 | ||
14615 | PR/other 30335 | |
14616 | * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put | |
14617 | file mapping object in local namespace if Windows version later | |
14618 | than NT4 | |
14619 | ||
14620 | 2007-07-18 Richard Sandiford <richard@codesourcery.com> | |
14621 | ||
14622 | * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare. | |
14623 | * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to | |
14624 | arm_cannot_force_const_mem. | |
14625 | (arm_cannot_force_const_mem): New function. | |
14626 | * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro. | |
14627 | (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead | |
14628 | of arm_tls_referenced_p. | |
14629 | * config/arm/arm.md (movsi): Split out-of-section constants when | |
14630 | ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P. | |
14631 | * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define. | |
14632 | ||
14633 | 2007-07-18 Richard Sandiford <richard@codesourcery.com> | |
14634 | ||
14635 | * config/mips/mips.md (clear_cache): Treat the size argument as Pmode. | |
14636 | ||
14637 | 2007-07-18 Richard Sandiford <richard@codesourcery.com> | |
14638 | ||
14639 | * config/mips/mips.md (*extendqihi2): Convert the destination | |
14640 | to SImode. | |
14641 | ||
14642 | 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
14643 | ||
14644 | * config/pa/fptr.c: Update license header. | |
14645 | * config/pa/milli64.S: Likewise. | |
14646 | ||
14647 | 2007-07-17 Nick Clifton <nickc@redhat.com> | |
14648 | ||
14649 | * COPYING_v3: New file. Contains version 3 of the GNU General | |
14650 | Public License. | |
14651 | * COPYING.LIB_v3: New file. Contains version 3 of the GNU | |
14652 | Lesser General Public License. | |
14653 | * doc/include/gpl_v3.texi: New file. Contains version 3 of | |
14654 | the GNU General Public License. | |
14655 | ||
14656 | 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz> | |
14657 | ||
14658 | PR rtl-optimization/32773 | |
14659 | * cfglayout.c (force_one_exit_fallthru): New function. | |
14660 | (cfg_layout_finalize): Use it. | |
14661 | ||
14662 | 2007-07-16 Richard Guenther <rguenther@suse.de> | |
14663 | Uros Bizjak <ubizjak@gmail.com> | |
14664 | ||
14665 | * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" | |
14666 | before forcing it to gimple operand. | |
14667 | ||
14668 | 2007-07-16 Sandra Loosemore <sandra@codesourcery.com> | |
14669 | David Ung <davidu@mips.com> | |
14670 | ||
14671 | * config/mips/mips.h (TUNE_24K): Define. | |
14672 | (TUNE_MACC_CHAINS): Add TUNE_24K. | |
14673 | * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to | |
14674 | imadd. | |
14675 | * config/mips/74k.md (r74k_int_mult): Split madd/msub to .. | |
14676 | (r74k_int_madd): .. this new reservation. | |
14677 | (define_bypass): Fixed bypasses for r74k_int_madd to use | |
14678 | mips_linked_madd_p. | |
14679 | * config/mips/24k.md (define_bypass): Define new | |
14680 | r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p. | |
14681 | ||
14682 | 2007-07-16 Sandra Loosemore <sandra@codesourcery.com> | |
14683 | Nigel Stephens <nigel@mips.com> | |
14684 | ||
14685 | * config/mips/mips.md: Include 20kc.md. | |
14686 | * config/mips/20kc.md: New file. | |
14687 | * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs. | |
14688 | (mips_adjust_cost): Tweak for 20Kc. | |
14689 | (mips_issue_rate): Likewise. | |
14690 | * config/mips/mips.h (TUNE_20KC): Define. | |
14691 | ||
14692 | 2007-07-16 David Edelsohn <edelsohn@gnu.og> | |
14693 | ||
14694 | * config/rs6000/rs6000.c (struct processor_cost): Add | |
14695 | cache_line_size, l1_cache_lines, and simultaneous_prefetches | |
14696 | fields. | |
14697 | (*_cost): Add cache information. | |
14698 | (rs6000_override_options): Set cache parameters. | |
14699 | ||
14700 | 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> | |
14701 | ||
14702 | PR bootstrap/3456 | |
14703 | * config.gcc (mips-sgi-irix[56]*): Enable pthread support. | |
14704 | * doc/install.texi (mips-sgi-irix6): pthread support works now. | |
14705 | ||
14706 | 2007-07-16 Paul Brook <paul@codesourcery.com> | |
14707 | ||
14708 | PR target/32753 | |
14709 | * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. | |
14710 | (cirrus_thumb2_movsi_insn): Ditto. | |
14711 | ||
14712 | 2007-07-15 Geoffrey Keating <geoffk@apple.com> | |
14713 | ||
14714 | * config/rs6000/darwin-fallback.c (interpret_libc): Change | |
14715 | CR2_REGNO to R_CR2. | |
14716 | ||
14717 | 2007-07-15 Andrew Haley <aph@redhat.com> | |
14718 | ||
14719 | * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL | |
14720 | before looking in the context. | |
14721 | ||
14722 | 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
14723 | ||
14724 | PR middle-end/32398 | |
14725 | PR middle-end/32769 | |
14726 | * pa-protos.h (pa_eh_return_handler_rtx): Declare. | |
14727 | * pa.c (pa_extra_live_on_entry, rp_saved): Declare. | |
14728 | (TARGET_EXTRA_LIVE_ON_ENTRY): Define. | |
14729 | (pa_output_function_prologue): Use rp_saved and | |
14730 | current_function_is_leaf to generate .CALLINFO statement. | |
14731 | (hppa_expand_prologue): Set rp_saved. | |
14732 | (hppa_expand_epilogue): Use rp_saved. | |
14733 | (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions. | |
14734 | * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx. | |
14735 | ||
14736 | 2007-07-14 Dirk Mueller <dmueller@suse.de> | |
14737 | ||
14738 | * omega.c (coalesce): Fix memory leak on early exit. | |
14739 | * matrix-reorg.c (check_allocation_function): Likewise. | |
14740 | * tree-vect-transform.c (vect_get_new_vect_var): free result | |
14741 | of concat(). | |
14742 | * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): | |
14743 | pass pointer to edge vector | |
14744 | (partition_hot_cold_basic_blocks): Fix memory leak. | |
14745 | * collect2.c (prefix_from_string): Free temporary storage. | |
14746 | * reload1.c (fixup_abnormal_edges): Free sbitmap. | |
14747 | ||
14748 | 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org> | |
14749 | ||
14750 | * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype. | |
14751 | (DO_GLOBAL_DTORS_BODY): Likewise. | |
14752 | ||
14753 | 2007-07-14 Sandra Loosemore <sandra@codesourcery.com> | |
14754 | Nigel Stephens <nigel@mips.com> | |
14755 | ||
14756 | * config/mips/mips.c (mips_classify_symbol): Don't return | |
14757 | SYMBOL_SMALL_DATA for constant pool addresses if | |
14758 | TARGET_EMBEDDED_DATA is true. | |
14759 | ||
14760 | 2007-07-14 Uros Bizjak <ubizjak@gmail.com> | |
14761 | ||
14762 | * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins | |
14763 | except __builtin_ia32_emms, __builtin_ia32_ldmxcsr, | |
14764 | __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups, | |
14765 | __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps, | |
14766 | __builtin_ia32_storehps, __builtin_ia32_storelps, | |
14767 | __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence, | |
14768 | __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd, | |
14769 | __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, | |
14770 | __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq, | |
14771 | __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence, | |
14772 | __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor, | |
14773 | __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa, | |
14774 | __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins | |
14775 | using def_builtin_const. | |
14776 | ||
14777 | 2007-07-14 Eric Botcazou <ebotcazou@adacore.com> | |
14778 | ||
14779 | PR tree-optimization/32705 | |
14780 | * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number. | |
14781 | (simplify_binary_expression): Use SSA_VAL consistently. | |
14782 | ||
14783 | 2007-07-13 David Edelsohn <edelsohn@gnu.org> | |
14784 | ||
14785 | * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition. | |
14786 | (SPEFSCR_REGNO): Delete definition. | |
14787 | * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO. | |
14788 | COUNT_REGISTER_REGNUM -> CTR_REGNO. | |
14789 | * config/rs6000/rs6000.h: Do not define *_REGNO. | |
14790 | LINK_REGISTER_REGNUM -> LR_REGNO. | |
14791 | COUNT_REGISTER_REGNUM -> CTR_REGNO. | |
14792 | * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO. | |
14793 | COUNT_REGISTER_REGNUM -> CTR_REGNO. | |
14794 | * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0, | |
14795 | R_VRSAVE, R_VSCR. Use them. | |
14796 | * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2, | |
14797 | R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them. | |
14798 | * config/rs6000/rs6000.md: Define REGNO constants. Use them. | |
14799 | * config/rs6000/aix.h: Define R_LR. Use it. | |
14800 | ||
14801 | 2007-07-13 Caroline Tice <ctice@apple.com> | |
14802 | ||
14803 | * toplev.c (process_options): Turn flag_var_tracking_uninit off when | |
14804 | flag_var_tracking is explicitly turned off (i.e. when variable | |
14805 | tracking is not feasible); otherwise, turn flag_var_tracking on when | |
14806 | flag_var_tracking_uninit is on. | |
14807 | * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION | |
14808 | note definitions, to allow recording of initialization status in the | |
14809 | notes. | |
14810 | * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit. | |
14811 | (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to | |
14812 | determine if two note locations are equal. | |
14813 | (output_loc_list): Don't output list entries whose start & end labels | |
14814 | are the same. | |
14815 | (reg_loc_descriptor): Add parameter for initialization status; pass it | |
14816 | to other loc descriptor functions. | |
14817 | (one_reg_loc_descriptor): Add parameter for initialization status; | |
14818 | check its value and add DW_OP_GNU_uninit to returned loc descr if | |
14819 | appropriate. | |
14820 | (multiple_reg_loc_descriptor): Add parameter for initialization | |
14821 | status; | |
14822 | pass init status argument to other loc descriptor functions; check | |
14823 | value of intialization parameter and add DW_OP_GNU_uninit to returned | |
14824 | loc descr if appropriate. | |
14825 | (based_loc_descr): Add parameter for initialization status; add new | |
14826 | variable for return value; check value of initialization parameter and | |
14827 | add DW_OP_GNU_uninit to returned loc descr if appropriate. | |
14828 | (concatn_mem_loc_descriptor): Add parameter for initialization status; | |
14829 | pass init status argument to other loc descriptor functions; check | |
14830 | value of intialization parameter and add DW_OP_GNU_uninit to returned | |
14831 | loc descr if appropriate. | |
14832 | (mem_loc_descriptor): Likewise. | |
14833 | (concat_loc_descriptor): Likewise. | |
14834 | (concatn_loc_descriptor): Likewise. | |
14835 | (loc_descriptor): Add parameter for initialization status; pass it as | |
14836 | argument to other loc descriptor function calls. | |
14837 | (loc_descriptor_from_tree_1): Add appropriate initialization status | |
14838 | to loc descriptor function calls. | |
14839 | (add_location_or_const_value_attribute): Get initialization status | |
14840 | from VAR_LOCATION note; add initialization status to loc descriptor | |
14841 | function calls. | |
14842 | * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit. | |
14843 | * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if | |
14844 | status is uninitialized, add "[uninint]" to output. | |
14845 | * common.opt (fvar-tracking-uninit): New option, similar to | |
14846 | fvar-tracking, to turn on tracking of uninitialized variables; creates | |
14847 | a new global flag, flag_var_tracking_uninit. | |
14848 | * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field. | |
14849 | (enum var_init_status): New type, for var initialization status field. | |
14850 | * var-tracking.c (struct location_chain_def): Two new fields, init, | |
14851 | for initialization status, and set_src for the assignment value expr. | |
14852 | (unshare_variable): New parameter for initialization status; | |
14853 | initialize new init and set_src fields. | |
14854 | (var_reg_set): New parameters for initialization status and value; | |
14855 | pass them to set_variable_part. | |
14856 | (var_mem_set): Likewise. | |
14857 | (get_init_value): New function. | |
14858 | (var_reg_delete_and_set): New initialization status & value | |
14859 | parameters; add call to get_init_value if status is unknown; pass new | |
14860 | parameters to clobber_variable_part and var_reg_set. | |
14861 | (var_mem_delete_and_set): Likewise. | |
14862 | (var_reg_delete): Pass null set_src value to clobber_variable_part. | |
14863 | (var_mem_delete): Likewise. | |
14864 | (variable_union): Pass status to unshare_variable; initialize new init | |
14865 | and set_src fields. If flag_var_tracking_uninit is not set, force | |
14866 | status to initialized. | |
14867 | (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be | |
14868 | used later to get the set_src value. | |
14869 | (find_src_status): New function. | |
14870 | (find_src_set_src): New function. | |
14871 | (compute_bb_dataflow): Pass init status to calls to var_reg_set, | |
14872 | var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for | |
14873 | MO_SET, get set_src value and pass it to var_reg_delete_and_set | |
14874 | and var_mem_delete_and_set. | |
14875 | (dump_variable): Print out "[uninit]" if appropriate. | |
14876 | (set_variable_part): Add new initialization and set_src parameters; | |
14877 | pass status to unshare_variable; set node->init and node- >set_src | |
14878 | fields and modify slot in hash table appropriately; save the init and | |
14879 | set_src values if appropriate and assign to the new node. | |
14880 | (clobber_variable_part): New set_src parameter; if two nodes have | |
14881 | same variable and same location but different set_src (assignment) | |
14882 | values, clobber old node. | |
14883 | (delete_variable_part): Pass init status to unshare_variable. | |
14884 | (emit_note_insn_var_location): Add initialized var; assign var's init | |
14885 | status to new 'initialized'; pass new init status field to calls to | |
14886 | gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force | |
14887 | status to initialized. | |
14888 | (emit_notes_in_bb): Pass initialization status to calls to | |
14889 | var_reg_set, var_mem_set, var_reg_delete_and_set and | |
14890 | var_mem_delete_and_set; for MO_SET, get set_src value and pass it to | |
14891 | var_reg_delete_and_set and var_mem_delete_and_set; call | |
14892 | emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to | |
14893 | make up for change in add_stores. | |
14894 | (vt_add_function_parameters): Add status to calls to | |
14895 | set_variable_part. | |
14896 | * config/darwin.c (darwin_override_options): Turn on uninitialized | |
14897 | tracking automatically, if var_tracking is on and the system is | |
14898 | 10.5 or higher. | |
14899 | ||
14900 | 2007-07-13 Sa Liu <saliu@de.ibm.com> | |
14901 | ||
14902 | * config.gcc: Add options for arch and tune on SPU. | |
14903 | * config/spu/predicates.md: Add constant operands 0 and 1. | |
14904 | * config/spu/spu-builtins.def: Add builtins for double precision | |
14905 | floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, | |
14906 | si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1, | |
14907 | spu_testsv. | |
14908 | * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with | |
14909 | a CELLEDP target. | |
14910 | * config/spu/spu-protos.h: Add new function prototypes. | |
14911 | * config/spu/spu.c (spu_override_options): Check options -march and | |
14912 | -mtune. | |
14913 | (spu_comp_icode): Add comparison code for DFmode and vector mode. | |
14914 | (spu_emit_branch_or_set): Use the new code for DFmode and vector | |
14915 | mode comparison. | |
14916 | (spu_const_from_int): New. Create a vector constant from 4 ints. | |
14917 | (get_vec_cmp_insn): New. Get insn index of vector compare instruction. | |
14918 | (spu_emit_vector_compare): New. Emit vector compare. | |
14919 | (spu_emit_vector_cond_expr): New. Emit vector conditional expression. | |
14920 | * config/spu/spu.h: Add options -march and -mtune. Define processor | |
14921 | types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro | |
14922 | CANONICALIZE_COMPARISON. | |
14923 | * config/spu/spu.md: Add new insns for double precision compare | |
14924 | and double precision vector compare. Add vcond and smax/smin patterns | |
14925 | to enable DFmode vector conditional expression. | |
14926 | * config/spu/spu.opt: Add options -march and -mtune. | |
14927 | * config/spu/spu_internals.h: Add builtins for CELLEDP target: | |
14928 | si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for | |
14929 | both CELL and CELLEDP targets: spu_testsv. | |
14930 | * config/spu/spu_intrinsics.h: Add flag mnemonics for test special | |
14931 | values. | |
14932 | ||
14933 | 2007-07-13 Richard Guenther <rguenther@suse.de> | |
14934 | ||
14935 | PR tree-optimization/32721 | |
14936 | * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve | |
14937 | TREE_THIS_VOLATILE on the folded reference. | |
14938 | * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops | |
14939 | if the array reference has TREE_THIS_VOLATILE set. | |
14940 | ||
14941 | 2007-07-13 H.J. Lu <hongjiu.lu@intel.com> | |
14942 | ||
14943 | PR other/32188 | |
14944 | * doc/libgcc.texi: Update DFP intrinsics for DPD and BID. | |
14945 | ||
14946 | 2007-07-13 Andreas Schwab <schwab@suse.de> | |
14947 | ||
14948 | * gengtype-lex.l: Allow declarations to be indented. | |
14949 | ||
14950 | 2007-07-12 Geoffrey Keating <geoffk@apple.com> | |
14951 | ||
14952 | * ginclude/tgmath.h: New. | |
14953 | * config.gcc: Use GCC's tgmath.h on non-glibc systems. | |
14954 | * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath. | |
14955 | * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath. | |
14956 | * configure: Regenerate. | |
14957 | ||
14958 | 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org> | |
14959 | ||
14960 | * config/sh/linux-unwind.h (sh_fallback_frame_state): Use | |
14961 | correct index when setting register save state for xd | |
14962 | registers. | |
14963 | ||
14964 | 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org> | |
14965 | ||
14966 | * config/sh/sh.c (mark_use): Remove. | |
14967 | ||
14968 | 2007-07-12 Paul Brook <paul@codesourcery.com> | |
14969 | ||
14970 | * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch | |
14971 | reg does not overlap return value. | |
14972 | ||
14973 | 2007-07-12 Daniel Berlin <dberlin@dberlin.org> | |
14974 | ||
14975 | * tree-ssa-pre.c (get_expression_vuses): Move out side-effect. | |
14976 | (set_expression_vuses): Ditto. | |
14977 | (init_pre): Initialize expression_vuses. | |
14978 | ||
14979 | 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz> | |
14980 | ||
14981 | * config/i386/sse.md (storentdf, storentsf): New. | |
14982 | ||
14983 | 2007-07-12 Geoffrey Keating <geoffk@apple.com> | |
14984 | ||
14985 | * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a | |
14986 | FUNCTION_DECL. | |
14987 | * tree.c (build_decl_stat): Move code from here... | |
14988 | (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN. | |
14989 | (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment | |
14990 | about using DECL_ALIGN of LABEL_DECL and CONST_DECL. | |
14991 | * tree.h (DECL_USER_ALIGN): Fix misplaced comment. | |
14992 | * varasm.c (assemble_start_function): Use DECL_ALIGN instead of | |
14993 | FUNCTION_BOUNDARY. | |
14994 | ||
14995 | 2007-07-12 Dorit Nuzman <dorit@il.ibm.com> | |
14996 | Devang Patel <dpatel@apple.com> | |
14997 | ||
14998 | PR tree-optimization/25413 | |
14999 | * targhooks.c (default_builtin_vector_alignment_reachable): New. | |
15000 | * targhooks.h (default_builtin_vector_alignment_reachable): New. | |
15001 | * tree.h (contains_packed_reference): New. | |
15002 | * expr.c (contains_packed_reference): New. | |
15003 | * tree-vect-analyze.c (vector_alignment_reachable_p): New. | |
15004 | (vect_enhance_data_refs_alignment): Call | |
15005 | vector_alignment_reachable_p. | |
15006 | * target.h (vector_alignment_reachable): New builtin. | |
15007 | * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New. | |
15008 | * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New. | |
15009 | (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define. | |
15010 | ||
15011 | 2007-07-12 Dorit Nuzman <dorit@il.ibm.com> | |
15012 | ||
15013 | * target.h (builtin_vectorization_cost): Add new target builtin. | |
15014 | * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New. | |
15015 | * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New. | |
15016 | (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New. | |
15017 | * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze | |
15018 | uninitialized variables. | |
15019 | * tree-vect-transform.c (cost_for_stmt): New function. | |
15020 | (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of | |
15021 | using cost 1 for all scalar stmts. Be less conservative when | |
15022 | estimating the number of prologue/epulogue iterations. Call | |
15023 | targetm.vectorize.builtin_vectorization_cost. Return | |
15024 | min_profitable_iters-1. | |
15025 | (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for | |
15026 | initialization cost instead of TARG_VEC_STMT_COST. Use | |
15027 | TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction | |
15028 | epilogue code. Fix epilogue cost computation. | |
15029 | * config/spu/spu.c (spu_builtin_vectorization_cost): New. | |
15030 | (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement. | |
15031 | * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST): | |
15032 | (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST): | |
15033 | (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST): | |
15034 | (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define. | |
15035 | ||
15036 | 2007-07-12 Richard Guenther <rguenther@suse.de> | |
15037 | ||
15038 | * gimplify.c (gimplify_conversion): Make sure that the result | |
15039 | from maybe_fold_offset_to_reference is trivially convertible | |
15040 | to the desired type before doing the simplification. | |
15041 | (gimplify_expr): Likewise. | |
15042 | * fold-const.c (fold_binary): Use the correct types for | |
15043 | building the simplified expression. | |
15044 | ||
15045 | 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz> | |
15046 | ||
15047 | PR rtl-optimization/32729 | |
15048 | * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks | |
15049 | that fallthru to exit. | |
15050 | ||
15051 | 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org> | |
15052 | ||
15053 | * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis. | |
15054 | (symDTPOFF2reg): Likewise. | |
15055 | ||
15056 | 2007-07-11 Daniel Berlin <dberlin@dberlin.org> | |
15057 | ||
15058 | PR tree-optimization/32663 | |
15059 | ||
15060 | * tree.h (VALUE_HANDLE_VUSES): Remove. | |
15061 | (struct tree_value_handle): Remove vuses. | |
15062 | ||
15063 | * tree-vn.c (create_value_handle_for_expr): Don't set | |
15064 | VALUE_HANDLE_VUSES. | |
15065 | ||
15066 | * tree-ssa-pre.c (expression_vuses): New. | |
15067 | (alloc_expression_id): Set up expression_vuses. | |
15068 | (get_expression_vuses): New. | |
15069 | (set_expression_vuses): Ditto. | |
15070 | (clear_expression_ids): Modify for expression_vuses. | |
15071 | (phi_translate_1): Ditto. | |
15072 | (phi_translate_set): Ditto. | |
15073 | (value_dies_in_block_x): Ditto | |
15074 | (valid_in_sets): Ditto. | |
15075 | (add_to_sets): Ditto. | |
15076 | (find_existing_value_expr): Ditto. | |
15077 | (create_value_handle_for_expr): Ditto. | |
15078 | (make_values_for_stmt): Ditto. | |
15079 | (vuse_equiv): Remove. | |
15080 | ||
15081 | 2007-07-11 Alexandre Oliva <aoliva@redhat.com> | |
15082 | ||
15083 | * Makefile.in (mostlyclean): Remove object files. | |
15084 | ||
15085 | 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com> | |
15086 | ||
15087 | * toplev.c (no_new_pseudos): Deleted. | |
15088 | * rtl.h (no_new_pseudos): Deleted. | |
15089 | * tree-pass.h (pass_no_new_pseudos): Deleted. | |
15090 | * passes.c (pass_no_new_pseudos): Deleted. | |
15091 | * final.c (rest_of_clean_state): Removed no_new_pseudos. | |
15092 | (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted. | |
15093 | * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with | |
15094 | reload_completed. | |
15095 | * cfgcleanup.c (try_crossjump_to_edge): Ditto. | |
15096 | * rtlhooks.c (gen_lowpart_general): Ditto. | |
15097 | * optabs.c (prepare_operand): Ditto. | |
15098 | * mode-switching.c (rest_of_handle_mode_switching): Deleted set of | |
15099 | no_new_pseudos. | |
15100 | * modulo-sched.c (rest_of_handle_sms): Ditto. | |
15101 | * see.c (rest_of_handle_see): Ditto. | |
15102 | * ifcvt.c (if_convert): Ditto. | |
15103 | (gate_handle_if_after_combine): Replaced no_new_pseudos with | |
15104 | reload_completed. | |
15105 | * init-regs.c (gate_initialize_regs): Deleted set of | |
15106 | no_new_pseudos. | |
15107 | * lower-subreg.c (decompose_multiword_subregs): Ditto. | |
15108 | * bb-reorder.c (rest_of_handle_partition_blocks): Ditto. | |
15109 | * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p. | |
15110 | ||
15111 | 2007-07-11 Uros Bizjak <ubizjak@gmail.com> | |
15112 | ||
15113 | PR target/32661 | |
15114 | * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves. | |
15115 | (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT. | |
15116 | (*vec_extractv2di_1_rex64): New insn pattern. | |
15117 | ||
15118 | 2007-07-11 David Daney <ddaney@avtrex.com> | |
15119 | ||
15120 | * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite | |
15121 | return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN | |
15122 | for SIGNAL_UNWIND_RETURN_COLUMN. | |
15123 | * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove. | |
15124 | (DWARF_FRAME_REGNUM): Rewrite. | |
15125 | (DWARF_ALT_FRAME_RETURN_COLUMN) Define. | |
15126 | ||
15127 | 2007-07-11 Nick Clifton <nickc@redhat.com> | |
15128 | ||
15129 | * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous | |
15130 | delta and use gen_int_mode in place of GET_INT instead. | |
15131 | ||
15132 | 2007-07-11 Uros Bizjak <ubizjak@gmail.com> | |
15133 | ||
15134 | * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name | |
15135 | and letter field. | |
15136 | ||
15137 | 2007-07-11 Douglas Gregor <doug.gregor@gmail.com> | |
15138 | ||
15139 | * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove. | |
15140 | (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical | |
15141 | types or not. | |
15142 | * params.h (VERIFY_CANONICAL_TYPES): Remove. | |
15143 | (USE_CANONICAL_TYPES): New. | |
15144 | * doc/invoke.texi (verify-canonical-types): Remove. | |
15145 | (use-canonical-types): Add. | |
15146 | ||
15147 | 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com> | |
15148 | ||
15149 | * config/spu/spu.c (spu_optimization_options): Remove setting of | |
15150 | parameter PARAM_MAX_COMPLETELY_PEEL_TIMES. | |
15151 | (spu_override_options): Move it here. | |
15152 | ||
15153 | 2007-07-11 Richard Sandiford <richard@codesourcery.com> | |
15154 | ||
15155 | * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd. | |
15156 | * config/mips/mips.c (mips_cpu_info_table): Mention | |
15157 | MIPS_ISA_LEVEL_SPEC in the comment. | |
15158 | ||
15159 | 2007-07-11 Eric Botcazou <ebotcazou@adacore.com> | |
15160 | ||
15161 | PR tree-optimization/32713 | |
15162 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST. | |
15163 | ||
15164 | 2007-07-11 Paolo Carlini <pcarlini@suse.de> | |
15165 | ||
15166 | PR middle-end/30482 | |
15167 | * c-opts.c (c_common_post_options): Do not change flag_complex_method | |
15168 | conditional to flag_isoc99. | |
15169 | (c_common_init_options): Do it here, unconditionally. | |
15170 | ||
15171 | 2007-07-11 Eric Botcazou <ebotcazou@adacore.com> | |
15172 | ||
15173 | PR tree-optimization/32589 | |
15174 | * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule. | |
15175 | * tree-gimple.c (is_gimple_min_invariant): Clarify head comment. | |
15176 | * tree-ssa-propagate.c (valid_gimple_expression_p): New | |
15177 | predicate, extracted from... | |
15178 | (set_rhs): ...here. Call it for the expression on entry. | |
15179 | * tree-ssa-propagate.h (valid_gimple_expression_p): Declare. | |
15180 | * tree-ssa-sccvn.c: Include tree-ssa-propagate.h. | |
15181 | (simplify_binary_expression): Use valid_gimple_expression_p | |
15182 | to validate the simplification. | |
15183 | * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h. | |
15184 | ||
15185 | 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net> | |
15186 | ||
15187 | * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to | |
15188 | DWARF2_DEBUG on 32 bit target too. | |
15189 | (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. | |
15190 | ||
15191 | 2007-07-11 Nick Clifton <nickc@redhat.com> | |
15192 | ||
15193 | * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative | |
15194 | version for 64-bit hosts. | |
15195 | ||
15196 | 2007-07-10 David Daney <ddaney@avtrex.com> | |
15197 | ||
15198 | * config/mips/mips.h (ISA_HAS_SYNCI): New target capability | |
15199 | predicate. | |
15200 | (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library | |
15201 | call. | |
15202 | * config/mips/mips.c (mips_expand_synci_loop): New function. | |
15203 | * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant. | |
15204 | (UNSPEC_RDHWR): Same. | |
15205 | (UNSPEC_SYNCI): Same. | |
15206 | (UNSPEC_SYNC): Same. | |
15207 | (clear_cache): New expand. | |
15208 | (sync): New insn. | |
15209 | (synci): Same. | |
15210 | (rdhwr): Same. | |
15211 | (clear_hazard): Same. | |
15212 | * config/mips/mips-protos.h (mips_expand_synci_loop): Declare | |
15213 | function. | |
15214 | * testsuite/gcc.target/mips/clear-cache-1.c: New test. | |
15215 | * testsuite/gcc.target/mips/clear-cache-2.c: New test. | |
15216 | ||
15217 | 2007-07-10 Ian Lance Taylor <iant@google.com> | |
15218 | ||
15219 | * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than | |
15220 | no_new_pseudos. | |
15221 | ||
15222 | 2007-07-10 David Daney <ddaney@avtrex.com> | |
15223 | ||
15224 | * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin. | |
15225 | * builtins.c (expand_builtin___clear_cache): New function. | |
15226 | (expand_builtin): Call expand_builtin___clear_cache for | |
15227 | BUILT_IN_CLEAR_CACHE case. | |
15228 | * doc/extend.texi (__builtin___clear_cache): Document new builtin. | |
15229 | * doc/md.texi (clear_cache): Document new instruction pattern. | |
15230 | * testsuite/gcc.dg/builtins-64.c: New test. | |
15231 | ||
15232 | 2007-07-11 Hans-Peter Nilsson <hp@axis.com> | |
15233 | ||
15234 | * config/cris/cris.md ("movsi"): Fix typo in last change. | |
15235 | ||
15236 | 2007-07-09 Geoffrey Keating <geoffk@apple.com> | |
15237 | ||
15238 | PR 32617 | |
15239 | * c-common.c (c_alignof_expr): Look at DECL_ALIGN of | |
15240 | FUNCTION_DECLs. | |
15241 | (handle_aligned_attribute): Allow use on FUNCTION_DECLs. | |
15242 | * varasm.c (assemble_start_function): Honor DECL_ALIGN | |
15243 | for FUNCTION_DECLs. Don't use align_functions_log if | |
15244 | DECL_USER_ALIGN. | |
15245 | * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN | |
15246 | even for FUNCTION_DECLs. | |
15247 | * c-decl.c (merge_decls): Propagate DECL_ALIGN even for | |
15248 | FUNCTION_DECLs. | |
15249 | * tree.h (DECL_ALIGN): Update for new location of 'align'. | |
15250 | (DECL_FUNCTION_CODE): Update for new location and name of | |
15251 | 'function_code'. | |
15252 | (DECL_OFFSET_ALIGN): Update for new location of 'off_align'. | |
15253 | (struct tree_decl_common): Move 'align' and 'off_align' out | |
15254 | of union, ensure they're still on a 32-bit boundary. Remove | |
15255 | other fields in union 'u1'. | |
15256 | (struct tree_function_decl): Add field 'function_code' replacing | |
15257 | 'u1.f' in tree_decl_common. | |
15258 | * tree.c (build_decl_stat): Set initial value of DECL_ALIGN. | |
15259 | * doc/extend.texi (Function Attributes): Add 'aligned' attribute. | |
15260 | (Variable Attributes): Cross-reference 'aligned' attribute | |
15261 | to Function Attributes. | |
15262 | * flags.h (force_align_functions_log): Delete. | |
15263 | * toplev.c (force_align_functions_log): Delete. | |
15264 | ||
15265 | 2007-07-10 Uros Bizjak <ubizjak@gmail.com> | |
15266 | ||
15267 | PR target/32708 | |
15268 | * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT. | |
15269 | (*vec_concatv2di_rex): New insn pattern. | |
15270 | ||
15271 | 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> | |
15272 | ||
15273 | PR target/32538 | |
15274 | * config/mips/iris6.h (LIBGCC_SPEC): Add libm. | |
15275 | ||
15276 | 2007-07-10 Ian Lance Taylor <iant@google.com> | |
15277 | ||
15278 | Replace no_new_pseudos in backends. | |
15279 | * rtl.h (can_create_pseudo_p): Define. | |
15280 | * config/darwin.c (machopic_indirect_data_reference): Use | |
15281 | can_create_pseudo_p () instead of no_new_pseudos. | |
15282 | (machopic_indirect_data_reference): Likewise. | |
15283 | (machopic_legitimize_pic_address): Likewise. | |
15284 | * config/alpha/alpha.c (alpha_legitimize_address): Likewise. | |
15285 | (alpha_emit_set_const_1): Likewise. | |
15286 | (alpha_emit_set_const): Likewise. | |
15287 | (alpha_emit_conditional_move): Likewise. | |
15288 | (alpha_split_conditional_move): Likewise. | |
15289 | * config/alpha/alpha.md (various splitters): Likewise. | |
15290 | (movti): Likewise. | |
15291 | * config/arm/arm.c (legitimize_pic_address): Likewise. | |
15292 | (arm_load_pic_register): Likewise. | |
15293 | * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise. | |
15294 | (movdi, movsi, movhi, movqi, movsf, movdf): Likewise. | |
15295 | * config/bfin/bfin.c (legitimize_pic_address): Likewise. | |
15296 | * config/cris/cris.c (cris_expand_pic_call_address): Likewise. | |
15297 | * config/cris/cris.md (movsi): Likewise. | |
15298 | * config/frv/frv.md (symGOT2reg_hilo): Likewise. | |
15299 | (symGOTOFF2reg_hilo): Likewise. | |
15300 | (symGPREL2reg, symGPREL2reg_hilo): Likewise. | |
15301 | * config/h8300/h8300.md (insv, extzv): Likewise. | |
15302 | * config/i386/i386.c (ix86_expand_move): Likewise. | |
15303 | (ix86_expand_vector_move): Likewise. | |
15304 | (ix86_prepare_fp_compare_args): Likewise. | |
15305 | (ix86_expand_carry_flag_compare): Likewise. | |
15306 | * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise. | |
15307 | (tls_dynamic_gnu2_combine_32): Likewise. | |
15308 | (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise. | |
15309 | * config/ia64/ia64.c (ia64_expand_move): Likewise. | |
15310 | (ia64_expand_movxf_movrf): Likewise. | |
15311 | * config/m32c/m32c.c (m32c_prepare_move): Likewise. | |
15312 | (m32c_split_move): Likewise. | |
15313 | (m32c_expand_insv): Likewise. | |
15314 | * config/m68k/m68k.md (movsi): Likewise. | |
15315 | * config/mips/mips.c (mips_force_temporary): Likewise. | |
15316 | (mips_split_symbol): Likewise. | |
15317 | (mips_move_integer): Likewise. | |
15318 | (mips_legitimize_const_move): Likewise. | |
15319 | * config/mn10300/mn10300.md (movsi): Likewise. | |
15320 | * config/pa/pa.c (emit_move_sequence): Likewise. | |
15321 | * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. | |
15322 | (rs6000_got_register): Likewise. | |
15323 | (create_TOC_reference): Likewise. | |
15324 | (rs6000_machopic_legitimize_pic_address): Likewise. | |
15325 | * config/rs6000/rs6000.md (add<mode>3): Likewise. | |
15326 | (various splitters): Likewise. | |
15327 | (iorsi3, xorsi3, iordi3, xordi3): Likewise. | |
15328 | (movsi_got): Likewise. | |
15329 | * config/s390/s390.c (emit_symbolic_move): Likewise. | |
15330 | * config/s390/s390.md (movhi, movqi): Likewise. | |
15331 | (load_multiple, store_multiple): Likewise. | |
15332 | * config/score/score.c (score_force_temporary): Likewise. | |
15333 | * config/sh/sh.c (prepare_move_operands): Likewise. | |
15334 | (prepare_cbranch_operands): Likewise. | |
15335 | (emit_fpu_switch): Likewise. | |
15336 | (fpscr_set_from_mem): Likewise. | |
15337 | * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise. | |
15338 | (adddi3, subsi3): Likewise. | |
15339 | (various splitters): Likewise. | |
15340 | (divsi_inv_fp_combine): Likewise. | |
15341 | (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise. | |
15342 | (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise. | |
15343 | (sne): Likewise. | |
15344 | * config/sh/predicates.md (xor_operand): Likewise. | |
15345 | * config/sparc/sparc.c (legitimize_tls_address): Likewise. | |
15346 | * config/sparc/sparc.md (movsi_pic_label_ref): Likewise. | |
15347 | (movdi_pic_label_ref): Likewise. | |
15348 | * config/spu/spu.c (spu_split_immediate): Likewise. | |
15349 | * config/alpha/alpha.md (various splitters): Remove test | |
15350 | !no_new_pseudos || reload_completed. | |
15351 | * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set | |
15352 | no_new_pseudos. | |
15353 | * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. | |
15354 | * config/mips/mips.c (mips_output_mi_thunk): Likewise. | |
15355 | * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. | |
15356 | * config/score/score.c (th_output_mi_thunk): Likewise. | |
15357 | * config/sh/sh.c (sh_output_mi_thunk): Likewise. | |
15358 | * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. | |
15359 | ||
15360 | 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org> | |
15361 | ||
15362 | PR rtl-optimization/32664 | |
15363 | * mode-switching.c (create_pre_exit): Skip barrier insns. | |
15364 | ||
15365 | 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz> | |
15366 | ||
15367 | * tree-scalar-evolution.c (scev_const_prop): Add arguments to | |
15368 | force_gimple_operand_bsi. | |
15369 | * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr, | |
15370 | rewrite_use_compare): Ditto. | |
15371 | * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref): | |
15372 | Ditto. | |
15373 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto. | |
15374 | * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. | |
15375 | * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto. | |
15376 | * tree-profile.c (prepare_instrumented_value, | |
15377 | tree_gen_interval_profiler, tree_gen_pow2_profiler, | |
15378 | tree_gen_one_value_profiler, tree_gen_ic_profiler, | |
15379 | tree_gen_ic_func_profiler, tree_gen_average_profiler, | |
15380 | tree_gen_ior_profiler): Ditto. | |
15381 | * tree-ssa-reassoc.c (negate_value): Ditto. | |
15382 | * matrix-reorg.c (transform_access_sites, transform_allocation_sites): | |
15383 | Use force_gimple_operand_bsi. | |
15384 | * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto. | |
15385 | * tree-if-conv.c (add_to_dst_predicate_list, | |
15386 | find_phi_replacement_condition): Ditto. | |
15387 | * gimplify.c (force_gimple_operand_bsi): Add before and m arguments. | |
15388 | Call mark_symbols_for_renaming for new statements. | |
15389 | * tree-flow.h (force_gimple_operand_bsi): Declaration changed. | |
15390 | ||
15391 | 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz> | |
15392 | ||
15393 | * cfghooks.c (remove_edge): New function. | |
15394 | (redirect_edge_and_branch, remove_branch, merge_blocks): Updated | |
15395 | loop exit rescans. | |
15396 | * cfghooks.h (remove_edge): Declare. | |
15397 | * cfg.c (remove_edge): Renamed to remove_edge_raw. | |
15398 | * basic-block.h (remove_edge): Declaration changed to remove_edge_raw. | |
15399 | ||
15400 | 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com> | |
15401 | ||
15402 | * optabs.h: Added declaration for signbit_optab. | |
15403 | * optabs.c: (init_optabs): Added initialization for signbit_optab. | |
15404 | * genoptinit.c (optabs): Added entry for signbit insns. | |
15405 | * builtins.c (expand_builtin_signbit): Added code to use a signbit | |
15406 | insn, if available. | |
15407 | * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant. | |
15408 | * config/s390/s390.md (signbit<mode>2): New expander. | |
15409 | ||
15410 | 2007-07-09 Richard Guenther <rguenther@suse.de> | |
15411 | ||
15412 | PR middle-end/32698 | |
15413 | * fold-const.c (fold_plusminus_mult_expr): Move constant | |
15414 | arguments second to allow decomposing. | |
15415 | ||
15416 | 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br> | |
15417 | ||
15418 | Revert: | |
15419 | 2007-07-06 Alexandre Oliva <aoliva@redhat.com> | |
15420 | PR debug/23551 | |
15421 | * tree-ssa-copyrename.c (copy_rename_partition_coalesce): | |
15422 | Disregard DECL_FROM_INLINE. | |
15423 | ||
15424 | 2007-07-09 Uros Bizjak <ubizjak@gmail.com> | |
15425 | ||
15426 | PR target/27855 | |
15427 | * doc/invoke.texi: Add ftree-reassoc flag. | |
15428 | * common.opt (ftree-reassoc): New flag. | |
15429 | * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function. | |
15430 | (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc. | |
15431 | ||
15432 | 2007-07-09 Uros Bizjak <ubizjak@gmail.com> | |
15433 | ||
15434 | PR tree-optimization/32681 | |
15435 | * tree-if-conv.c (find_phi_replacement_condition): Use the condition | |
15436 | saved in second_edge->aux when first_bb is a loop header. | |
15437 | ||
15438 | 2007-07-09 Jan HUbicka <jh@suse.cz> | |
15439 | ||
15440 | * cse.c (cse_insn): Avoid invalid sharing on trial replacement. | |
15441 | ||
15442 | 2007-07-09 Richard Guenther <rguenther@suse.de> | |
15443 | ||
15444 | * c-decl.c (start_function): Do not promote return type. | |
15445 | ||
15446 | 2007-07-08 Daniel Franke <franke.daniel@gmail.com> | |
15447 | ||
15448 | * function.c (do_warn_unused_parameter): Do not warn if | |
15449 | TREE_NO_WARNING is set. | |
15450 | ||
15451 | 2007-07-08 Andreas Schwab <schwab@suse.de> | |
15452 | ||
15453 | * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo. | |
15454 | ||
15455 | 2007-07-08 Sandra Loosemore <sandra@codesourcery.com> | |
15456 | ||
15457 | Revert this patch: | |
15458 | 2007-07-06 Sandra Loosemore <sandra@codesourcery.com> | |
15459 | ||
15460 | * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS | |
15461 | apply to assembly language, too. | |
15462 | * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. | |
15463 | ||
15464 | 2007-07-07 Daniel Berlin <dberlin@dberlin.org> | |
15465 | ||
15466 | Revert (note the sccvn portions are *not* reverted) | |
15467 | 2007-07-06 Daniel Berlin <dberlin@dberlin.org> | |
15468 | ||
15469 | Fix PR tree-optimization/23488 | |
15470 | ||
15471 | * tree-vn.c (set_value_handle): Use decl_vh_map for decl value | |
15472 | handles. | |
15473 | * tree-flow-inline.h (get_value_handle): Ditto. | |
15474 | * tree-ssa-pre.c (decl_vh_map): New. | |
15475 | (decl_node_pool): New. | |
15476 | (can_value_number_operation): Support DECL_P. | |
15477 | (can_PRE_operation): Ditto. | |
15478 | (create_expression_by_pieces): Ditto. | |
15479 | (find_existing_value_expr): Modify to differnetiate between | |
15480 | addressing and top level. | |
15481 | (create_value_handle_for_expr): Handle DECL's. | |
15482 | (poolify_tree): Ditto. | |
15483 | (make_values_for_phi): Don't insert into PHI_GEN during FRE. | |
15484 | (make_values_for_stmt): Handle DECL's properly. | |
15485 | (init_pre): Reorg to not init useless things during FRE. | |
15486 | (fini_pre): Ditto. | |
15487 | * tree-flow.h: Include pointer-set.h. | |
15488 | (decl_vh_map): Declare. | |
15489 | * Makefile.in (TREE_FLOW_H): Add pointer-set.h | |
15490 | ||
15491 | 2007-07-07 Eric Weddington <eweddington@cso.atmel.com> | |
15492 | ||
15493 | * config/avr/constraints.md (define_memory_constraint "Q"): Fix | |
15494 | the constraint description. | |
15495 | * doc/md.texi: Update documentation of AVR constraints. | |
15496 | ||
15497 | 2007-07-07 Kazu Hirata <kazu@codesourcery.com> | |
15498 | ||
15499 | * auto-inc-dec.c, config/arm/arm.c, | |
15500 | config/m32r/constraints.md, config/mips/mips.md, | |
15501 | config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c, | |
15502 | df-problems.c, df-scan.c, df.h, dse.c, gimplify.c, | |
15503 | tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment | |
15504 | typos. Follow spelling conventions. | |
15505 | * doc/invoke.texi, doc/rtl.texi: Fix typos. | |
15506 | ||
15507 | * cfgrtl.c (delete_insn_chain_and_edges): Remove. | |
15508 | * rtl.h: Remove the prototype for delete_insn_chain_and_edges. | |
15509 | ||
15510 | * tree-ssa-operands.c (realloc_vop, realloc_vdef, | |
15511 | realloc_vuse): Remove. | |
15512 | * tree-ssa-operands.h: Remove the prototype for realloc_vdef | |
15513 | and realloc_vuse. | |
15514 | ||
15515 | 2007-07-06 Daniel Berlin <dberlin@dberlin.org> | |
15516 | ||
15517 | Fix PR tree-optimization/23488 | |
15518 | ||
15519 | * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration. | |
15520 | (try_to_simplify): Ditto. | |
15521 | (visit_use): Ditto. | |
15522 | * tree-vn.c (set_value_handle): Use decl_vh_map for decl value | |
15523 | handles. | |
15524 | * tree-flow-inline.h (get_value_handle): Ditto. | |
15525 | * tree-ssa-pre.c (decl_vh_map): New. | |
15526 | (decl_node_pool): New. | |
15527 | (can_value_number_operation): Support DECL_P. | |
15528 | (can_PRE_operation): Ditto. | |
15529 | (create_expression_by_pieces): Ditto. | |
15530 | (find_existing_value_expr): Modify to differnetiate between | |
15531 | addressing and top level. | |
15532 | (create_value_handle_for_expr): Handle DECL's. | |
15533 | (poolify_tree): Ditto. | |
15534 | (make_values_for_phi): Don't insert into PHI_GEN during FRE. | |
15535 | (make_values_for_stmt): Handle DECL's properly. | |
15536 | (init_pre): Reorg to not init useless things during FRE. | |
15537 | (fini_pre): Ditto. | |
15538 | * tree-flow.h: Include pointer-set.h. | |
15539 | (decl_vh_map): Declare. | |
15540 | * Makefile.in (TREE_FLOW_H): Add pointer-set.h | |
15541 | ||
15542 | 2007-07-06 Sandra Loosemore <sandra@codesourcery.com> | |
15543 | ||
15544 | * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS | |
15545 | apply to assembly language, too. | |
15546 | * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. | |
15547 | ||
15548 | 2007-07-06 Ian Lance Taylor <iant@google.com> | |
15549 | Zack Weinberg <zackw@panix.com> | |
15550 | ||
15551 | PR middle-end/32441 | |
15552 | * builtins.c (std_expand_builtin_va_start): Don't use make_tree. | |
15553 | ||
15554 | 2007-07-06 Richard Sandiford <richard@codesourcery.com> | |
15555 | ||
15556 | * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP. | |
15557 | (prefetch): Likewise if "pref" would be used. | |
15558 | ||
15559 | 2007-07-06 Josh Conner <jconner@apple.com> | |
15560 | ||
15561 | PR middle-end/32602 | |
15562 | PR middle-end/32603 | |
15563 | * calls.c (store_one_arg): Handle arguments which are partially | |
15564 | on the stack when detecting argument overlap. | |
15565 | ||
15566 | 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com> | |
15567 | ||
15568 | * reload1.c (choose_reload_regs): Set reload_spill_index for regs | |
15569 | chosen during find_reloads. | |
15570 | ||
15571 | 2007-07-06 Richard Guenther <rguenther@suse.de> | |
15572 | ||
15573 | * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over | |
15574 | TYPE_ARG_TYPES for verification of argument types. Use | |
15575 | DECL_ARG_TYPE instead of the PARM_DECL type. Take excess | |
15576 | parameters as variable arguments. | |
15577 | ||
15578 | 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com> | |
15579 | ||
15580 | * libgcc2.h (word_type): Type definition removed. | |
15581 | (cmp_return_type, shift_count_type): Type definitions added. | |
15582 | (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter | |
15583 | replaced with shift_count_type. | |
15584 | (__cmpdi2, __ucmpdi2): word_type of return type replaced with | |
15585 | cmp_return_type. | |
15586 | * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c | |
15587 | changed from word_type to Wtype. | |
15588 | (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter | |
15589 | replaced with shift_count_type. | |
15590 | (__cmpdi2, __ucmpdi2): word_type of return type replaced with | |
15591 | cmp_return_type. | |
15592 | * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return | |
15593 | and libgcc_shift_count attribute added. | |
15594 | * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE, | |
15595 | TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined. | |
15596 | (TARGET_INITIALIZER): New target hooks added. | |
15597 | * targhooks.c (default_libgcc_cmp_return_mode, | |
15598 | default_libgcc_shift_count_mode): Default implementations for the new | |
15599 | target hooks added. | |
15600 | * targhooks.h (default_libgcc_cmp_return_mode, | |
15601 | default_libgcc_shift_count_mode): Function prototypes added. | |
15602 | * target.h (struct gcc_target): Fields for the new target hooks added. | |
15603 | * optabs.c (expand_binop): Use shift_count_mode when expanding shift | |
15604 | as library call. | |
15605 | (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as | |
15606 | library call. | |
15607 | ||
15608 | * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE, | |
15609 | TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added. | |
15610 | ||
15611 | * config/s390/s390.c (s390_libgcc_cmp_return_mode, | |
15612 | s390_libgcc_shift_count_mode): Functions added. | |
15613 | (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): | |
15614 | Target hooks defined. | |
15615 | ||
15616 | 2007-07-06 Richard Sandiford <richard@codesourcery.com> | |
15617 | ||
15618 | * config/mips/mips.c (compute_frame_size): Restore the original | |
15619 | gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the | |
15620 | fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation. | |
15621 | Document why the difference is needed. | |
15622 | ||
15623 | 2007-07-06 Richard Guenther <rguenther@suse.de> | |
15624 | ||
15625 | * c-common.c (boolean_increment): Use correctly typed | |
15626 | constant. | |
15627 | ||
15628 | 2007-07-06 Richard Sandiford <richard@codesourcery.com> | |
15629 | ||
15630 | * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that | |
15631 | the topmost argument register is not also included in the save mask. | |
15632 | (mips16e_collect_argument_save_p): Take a pointer to the argument | |
15633 | register, rather than a pointer to the number of arguments. | |
15634 | (mips16e_collect_argument_saves): Only include argument saves | |
15635 | that aren't in the register mask. | |
15636 | ||
15637 | 2007-07-06 Uros Bizjak <ubizjak@gmail.com> | |
15638 | ||
15639 | PR rtl-optimization/32450 | |
15640 | * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn | |
15641 | to ensure that instructions are not moved into the prologue when | |
15642 | profiling is on. Remove unused prologue_end variable. | |
15643 | (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx | |
15644 | as a scheduling barrier. | |
15645 | ||
15646 | 2007-07-06 Alexandre Oliva <aoliva@redhat.com> | |
15647 | ||
15648 | PR debug/23551 | |
15649 | * tree-ssa-copyrename.c (copy_rename_partition_coalesce): | |
15650 | Disregard DECL_FROM_INLINE. | |
15651 | ||
15652 | 2007-07-05 Adam Nemet <anemet@caviumnetworks.com> | |
15653 | ||
15654 | * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or | |
15655 | IORing with a constant. | |
15656 | ||
15657 | 2007-07-05 Seongbae Park <seongbae.park@gmail.com> | |
15658 | ||
15659 | PR rtl-optimization/32475 | |
15660 | * df-scan.c (df_def_record_1): Add a use of the stack pointer | |
15661 | for every definition of the stack pointer. | |
15662 | ||
15663 | 2007-07-05 Richard Earnshaw <rearnsha@arm.com> | |
15664 | ||
15665 | * arm.c (vfp3_const_double_index): Copy signed results of | |
15666 | REAL_VALUE_TO_INT into unsigned vars. | |
15667 | ||
15668 | 2007-07-05 Richard Guenther <rguenther@suse.de> | |
15669 | ||
15670 | PR middle-end/32639 | |
15671 | * alias.c (get_alias_set): Tread METHOD_TYPE the same as | |
15672 | FUNCTION_TYPE. | |
15673 | * tree-ssa.c (useless_type_conversion_p): Check canonical | |
15674 | types early. | |
15675 | ||
15676 | 2007-07-05 Anatoly Sokolov <aesok@post.ru> | |
15677 | ||
15678 | * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, | |
15679 | zero_extendhisi2): Change to define_insn_and_split. | |
15680 | (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New. | |
15681 | ||
15682 | 2007-07-05 Paolo Bonzini <bonzini@gnu.org> | |
15683 | ||
15684 | * function.c (match_asm_constraints_1, rest_of_match_asm_constraints, | |
15685 | pass_match_asm_constraints): New. | |
15686 | * passes.c (init_optimization_passes): Add new pass. | |
15687 | * stmt.c (expand_asm_operands): Set cfun->has_asm_statement. | |
15688 | * function.h (struct function): Add has_asm_statement bit. | |
15689 | (current_function_has_asm_statement): New. | |
15690 | * tree-pass.h (pass_match_asm_constraints): New. | |
15691 | ||
15692 | 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk> | |
15693 | ||
15694 | * config/mips/mips.c (mips_file_start): Avoid declaration | |
15695 | after code. | |
15696 | ||
15697 | 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> | |
15698 | ||
15699 | * optabs.c (expand_binop_directly): Fix signed/unsigned comparison. | |
15700 | ||
15701 | 2007-07-05 Uros Bizjak <ubizjak@gmail.com> | |
15702 | ||
15703 | * rtl.def (NOTE): Change print format string to print | |
15704 | operand 5 as a note insn name. | |
15705 | ||
15706 | 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> | |
15707 | David Ung <davidu@mips.com> | |
15708 | ||
15709 | * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors. | |
15710 | * doc/invoke.texi: (MIPS Options): Document them. | |
15711 | ||
15712 | 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> | |
15713 | David Ung <davidu@mips.com> | |
15714 | ||
15715 | Add support for SmartMIPS ASE. | |
15716 | ||
15717 | * optabs.c (expand_binop_directly): New, broken out from... | |
15718 | (expand_binop): Here. Make it try rotating in the other | |
15719 | direction even when the second operand isn't constant. | |
15720 | * config/mips/mips.md (*lwxs): New. | |
15721 | * config/mips/mips.opt (msmartmips): New. | |
15722 | * config/mips/mips.c (mips_lwxs_address_p): New. | |
15723 | (mips_rtx_costs): Make it recognize scaled indexed addressing. | |
15724 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define | |
15725 | __mips_smartmips when compiling for TARGET_SMARTMIPS. | |
15726 | (ISA_HAS_ROR): Define for TARGET_SMARTMIPS. | |
15727 | (ISA_HAS_LWXS): New. | |
15728 | (ASM_SPEC): Add -msmartmips/-mno-smartmips. | |
15729 | * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips. | |
15730 | * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case. | |
15731 | * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case. | |
15732 | * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case. | |
15733 | * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case. | |
15734 | * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case. | |
15735 | ||
15736 | 2007-07-05 Dorit Nuzman <dorit@il.ibm.com> | |
15737 | ||
15738 | * tree-vectorizer.c (new_loop_vec_info): Initialize | |
15739 | LOOP_VINFO_COST_MODEL_MIN_ITERS. | |
15740 | * tree-vectorizer.h (_loop_vec_info): Added new filed | |
15741 | min_profitable_iters. | |
15742 | (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field. | |
15743 | (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation. | |
15744 | * tree-vect-analyze.c (vect_analyze_operations): Set | |
15745 | LOOP_VINFO_COST_MODEL_MIN_ITERS. | |
15746 | * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use | |
15747 | VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS. | |
15748 | Fix calculation of peel_iters_prologue. Move consideration of epilogue | |
15749 | and prologue cost to after they are computed. | |
15750 | (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of | |
15751 | TARG_VEC_STMT_COST. | |
15752 | (vect_model_simple_cost): Takes additional argument dt. Consider cost | |
15753 | of creating vectors from scalars according to dt. | |
15754 | (vect_model_store_cost): Likewise. | |
15755 | (vectorizable_call): Use dt array instead of scalar dt. Call | |
15756 | vect_model_simple_cost with additional argument dt. | |
15757 | (vectorizable_assignment): Likewise. | |
15758 | (vectorizable_operation): Likewise. | |
15759 | (vectorizable_type_demotion): Likewise. | |
15760 | (vectorizable_type_promotion): Likewise. | |
15761 | (vectorizable_store): Use dt array instead of scalar dt. Call | |
15762 | vect_model_store_cost with additional argument dt. | |
15763 | (vect_do_peeling_for_loop_bound): Don't call | |
15764 | vect_estimate_min_profitable_iters. Instead, lookup | |
15765 | LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print | |
15766 | "may not be profitable". | |
15767 | ||
15768 | 2007-07-05 Dorit Nuzman <dorit@il.ibm.com> | |
15769 | ||
15770 | PR testsuite/32014 | |
15771 | * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF): | |
15772 | (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New. | |
15773 | (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns. | |
15774 | (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. | |
15775 | ||
15776 | 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz> | |
15777 | ||
15778 | * config/i386/i386.c (ix86_address_cost): Do not consider more complex | |
15779 | addressing modes cheaper. | |
15780 | ||
15781 | 2007-07-05 Alexandre Oliva <aoliva@redhat.com> | |
15782 | ||
15783 | * dwarf2out.c (dw_ranges_by_label_ref): New typedef. | |
15784 | (dw_ranges_struct): Rename block_num to num. Adjust. | |
15785 | (dw_ranges_by_label_struct): New. | |
15786 | (ranges_by_label, ranges_by_label_allocated, | |
15787 | ranges_by_label_in_use): New variables. | |
15788 | (add_ranges_num): Factored most of the code out of... | |
15789 | (add_ranges): ... this one. Rewrite in terms of the former. | |
15790 | (add_ranges_by_labels): New. | |
15791 | (output_ranges): Output by-label ranges. | |
15792 | (dwarf2out_finish): Output range for multiple-section | |
15793 | compile_unit. Output standard DW_AT_low_pc in addition to | |
15794 | unexpected DW_AT_entry_pc. | |
15795 | ||
15796 | 2007-07-04 Daniel Berlin <dberlin@dberlin.org> | |
15797 | ||
15798 | PR tree-optimization/32604 | |
15799 | PR tree-optimization/32606 | |
15800 | ||
15801 | * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads. | |
15802 | (compute_antic_safe): Removed. | |
15803 | (ANTIC_SAFE_LOADS): Ditto. | |
15804 | (compute_antic_aux): Don't print ANTIC_SAFE_LOADS. | |
15805 | (execute_pre): Don't call compute_antic_safe. | |
15806 | (vuse_equiv): New function. | |
15807 | (make_values_for_stmt): Use it | |
15808 | * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is | |
15809 | not always true. | |
15810 | ||
15811 | 2007-07-04 Anatoly Sokolov <aesok@post.ru> | |
15812 | ||
15813 | PR target/31331 | |
15814 | * config/avr/avr.c (avr_naked_function_p): Handle receiving a type | |
15815 | rather than a decl. | |
15816 | (avr_attribute_table): Make "naked" attribute apply to function types | |
15817 | rather than to decls. | |
15818 | (avr_handle_fntype_attribute): New function. | |
15819 | ||
15820 | 2007-07-04 Joseph Myers <joseph@codesourcery.com> | |
15821 | ||
15822 | * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace | |
15823 | after \. | |
15824 | ||
15825 | 2007-07-04 David Ung <davidu@mips.com> | |
15826 | Joseph Myers <joseph@codesourcery.com> | |
15827 | ||
15828 | * config/mips/mips.md (type): Add logical, signext and move. | |
15829 | (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3, | |
15830 | *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16, | |
15831 | *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend | |
15832 | combinations", *zero_extend<SHORT:mode><GPR:mode>2, | |
15833 | *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e, | |
15834 | *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit, | |
15835 | *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc, | |
15836 | *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16, | |
15837 | *movsf_hardfloat, *movsf_softfloat, *movsf_mips16, | |
15838 | *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, | |
15839 | movv2sf_hardfloat_64bit): Use the new types. | |
15840 | (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16, | |
15841 | *movdf_softfloat, *movdf_mips16): Use "multi". | |
15842 | (extendqihi2): Replace with a define_expand. | |
15843 | (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New. | |
15844 | Based on extend<SHORT:mode><GPR:mode>2 patterns. | |
15845 | * config/mips/74k.md (r74k_int_logical): New reservation and | |
15846 | bypasses. | |
15847 | (r74k_int_arith): Remove "slt". | |
15848 | * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md, | |
15849 | config/mips/5400.md, config/mips/5500.md, config/mips/5k.md, | |
15850 | config/mips/7000.md, config/mips/9000.md, config/mips/generic.md, | |
15851 | config/mips/sb1.md, config/mips/sr71k.md: Add new types to | |
15852 | reservations for "arith". | |
15853 | ||
15854 | 2007-07-04 Richard Guenther <rguenther@suse.de> | |
15855 | ||
15856 | * tree-ssa.c (useless_type_conversion_p): Add handling for | |
15857 | scalar float and vector types. Only call the types_compatible_p | |
15858 | langhook for aggregate types as last resort. Follow the | |
15859 | rules. | |
15860 | ||
15861 | 2007-07-04 Richard Guenther <rguenther@suse.de> | |
15862 | ||
15863 | * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR | |
15864 | the same as NOP_EXPR. | |
15865 | ||
15866 | 2007-07-04 Nick Clifton <nickc@redhat.com> | |
15867 | ||
15868 | * target.h (struct gcc_target): Add target_help field. | |
15869 | * target-def.h (TARGET_HELP): New. | |
15870 | (TARGET_INITIALIZER): Use TARGET_HELP. | |
15871 | * opts.c (command_handle_option): Invoke target_help function, if | |
15872 | defined, when the user has specified --target-help on the command | |
15873 | line. | |
15874 | * doc/invoke.texi: Mention that --target-help might print | |
15875 | additional information. | |
15876 | * doc/tm.texi: Document TARGET_HELP hook. | |
15877 | ||
15878 | * arm.c (TARGET_HELP): Override default definition. | |
15879 | (arm_target_help): New - display a wrapped list of cores and | |
15880 | architectures supported. | |
15881 | ||
15882 | 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
15883 | ||
15884 | * config/v850/v850.c (expand_prologue): Make sure | |
15885 | GEN_INT() argument is sign extended rather than zero extended. | |
15886 | (expand_epilogue): Likewise. | |
15887 | (output_move_double): Delete. | |
15888 | * config/v850/v850-protos.h (output_move_double): Delete. | |
15889 | * config/v850/v850.md (movdi): Delete. | |
15890 | (*movdi_internal): Delete. | |
15891 | (movdf): Delete. | |
15892 | (*movdf_internal): Delete. | |
15893 | ||
15894 | 2007-07-04 Richard Sandiford <richard@codesourcery.com> | |
15895 | ||
15896 | * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax | |
15897 | unless compiling RTP PIC. | |
15898 | ||
15899 | 2007-07-04 Richard Guenther <rguenther@suse.de> | |
15900 | ||
15901 | PR tree-optimization/32482 | |
15902 | * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the | |
15903 | original ssa name if we didn't find a shift expression. | |
15904 | Fix shift constant for bit zero test. | |
15905 | ||
15906 | 2007-07-04 Richard Sandiford <richard@codesourcery.com> | |
15907 | ||
15908 | * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool. | |
15909 | ||
15910 | 2007-07-04 Richard Sandiford <richard@codesourcery.com> | |
15911 | ||
15912 | * config.gcc (arm-wrs-vxworks): Don't include svr4.h. | |
15913 | * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define. | |
15914 | * config/arm/vxworks.h (ASM_SPEC): Delete. | |
15915 | (SUBTARGET_EXTRA_ASM_SPEC): Define. | |
15916 | ||
15917 | 2007-07-04 Sebastian Pop <sebpop@gmail.com> | |
15918 | ||
15919 | * tree-data-ref.h (data_dependence_relation): New flag reversed_p. | |
15920 | (DDR_REVERSED_P): New. | |
15921 | * tree-data-ref.c (initialize_data_dependence_relation, | |
15922 | build_classic_dist_vector): Set DDR_REVERSED_P. | |
15923 | ||
15924 | 2007-07-04 Sebastian Pop <sebpop@gmail.com> | |
15925 | ||
15926 | PR middle-end/32457 | |
15927 | * tree-data-ref.c (analyze_siv_subscript_cst_affine, | |
15928 | compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine, | |
15929 | init_omega_for_ddr_1): Use non conservative number of iterations | |
15930 | estimations. | |
15931 | (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int. | |
15932 | (analyze_siv_subscript): Remove FIXME and reinitialization of | |
15933 | last_conflicts to chrec_dont_know. | |
15934 | * testsuite/gfortran.dg/vect/pr32457.f90: New. | |
15935 | ||
15936 | 2007-07-04 Douglas Gregor <doug.gregor@gmail.com> | |
15937 | ||
15938 | * tree.c (maybe_canonicalize_argtypes): Improve description. | |
15939 | ||
15940 | 2007-07-04 Douglas Gregor <doug.gregor@gmail.com> | |
15941 | ||
15942 | * tree.c (maybe_canonicalize_argtypes): New. | |
15943 | (build_function_type): Set canonical type. | |
15944 | (build_method_type_directly): Ditto. | |
15945 | (reconstruct_complex_type): Rebuild the METHOD_TYPE node | |
15946 | properly. | |
15947 | ||
15948 | 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
15949 | ||
15950 | * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR | |
15951 | like PLUS_EXPR. | |
15952 | (rewrite_use_nonlinear_expr): Likewise. | |
15953 | ||
15954 | 2007-07-03 Seongbae Park <seongbae.park@gmail.com> | |
15955 | ||
15956 | * rtl.def (UNSPEC, USE, CLOBBER): More comments. | |
15957 | ||
15958 | 2007-07-04 Ben Elliston <bje@au.ibm.com> | |
15959 | ||
15960 | * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top | |
15961 | of this file. | |
15962 | ||
15963 | * c-objc-common.c (c_types_compatible_p): Fix indentation. | |
15964 | ||
15965 | * doc/tm.texi (Run-time Target): Capitalise "CPU". | |
15966 | (Exception Handling): Likewise. | |
15967 | ||
15968 | 2007-07-03 Jan Hubicka <jh@suse.cz> | |
15969 | ||
15970 | * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing. | |
15971 | ||
15972 | 2007-07-03 Eric Christopher <echristo@apple.com> | |
15973 | ||
15974 | * doc/cppopts.texi: Add conflicting option note to -dM. | |
15975 | * doc/invoke.texi: Add note about possible conflicts with | |
15976 | -E for -dCHARS and note that -dM will not produce | |
15977 | any results if there is no machine dependent reorg. | |
15978 | ||
15979 | 2007-07-03 Geoffrey Keating <geoffk@apple.com> | |
15980 | ||
15981 | * tree.h (DECL_ALIGN): Back out previous change. | |
15982 | ||
15983 | 2007-07-03 Joseph Myers <joseph@codesourcery.com> | |
15984 | ||
15985 | * configure.ac: Test for .dtprelword support on MIPS. | |
15986 | * configure, config.in: Regenerate. | |
15987 | * config/mips/mips.c (mips_output_dwarf_dtprel): New. | |
15988 | (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. | |
15989 | ||
15990 | 2007-07-03 Julian Brown <julian@codesourcery.com> | |
15991 | ||
15992 | * config.gcc (with_fpu): Allow --with-fpu=vfp3. | |
15993 | * config/arm/aout.h (REGISTER_NAMES): Add D16-D31. | |
15994 | * config/arm/aof.h (REGISTER_NAMES): Add D16-D31. | |
15995 | * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor | |
15996 | capability. | |
15997 | (all_fpus): Add FPUTYPE_VFP3. | |
15998 | (fp_model_for_fpu): Add VFPv3 field. | |
15999 | (arm_rtx_costs_1): Give cost to VFPv3 constants. | |
16000 | (vfp3_const_double_index): New function. Return integer index of | |
16001 | VFPv3 constant suitable for fconst[sd] insns, or -1 if constant | |
16002 | isn't suitable. | |
16003 | (vfp3_const_double_rtx): New function. True if VFPv3 is enabled | |
16004 | and argument represents a valid RTX for a VFPv3 constant. | |
16005 | (vfp_output_fldmd): Split fldmd with > 16 registers in the list into | |
16006 | two instructions. | |
16007 | (vfp_emit_fstmd): Similar, for fstmd. | |
16008 | (arm_print_operand): Implement new code 'G' for VFPv3 floating-point | |
16009 | constants, represented as integer indices. | |
16010 | (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE, | |
16011 | VFP_REGNO_OK_FOR_DOUBLE macros. | |
16012 | (arm_regno_class): Handle VFPv3 d0-d7, low, high register split. | |
16013 | (arm_file_start): Set float-abi attribute for VFPv3, and output | |
16014 | correct ".fpu" assembler directive. | |
16015 | (arm_dbx_register_numbering): Add FIXME. | |
16016 | * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3. | |
16017 | (fputype): Add FPUTYPE_VFP3. | |
16018 | (FIXED_REGISTERS): Add 32 registers for D16-D31. | |
16019 | (CALL_USED_REGISTERS): Likewise. | |
16020 | (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition | |
16021 | of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present. | |
16022 | (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3. | |
16023 | (D7_VFP_REGNUM): New. | |
16024 | (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM) | |
16025 | (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE) | |
16026 | (VFP_REGNO_OK_FOR_DOUBLE): Define new macros. | |
16027 | (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3. | |
16028 | (REG_ALLOC_ORDER): Adjust for VFPv3. | |
16029 | (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS. | |
16030 | (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS, | |
16031 | VFP_LO_REGS, VFP_HI_REGS. | |
16032 | (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS. | |
16033 | (IS_VFP_CLASS): Define macro. | |
16034 | (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use | |
16035 | IS_VFP_CLASS. | |
16036 | (REGISTER_MOVE_COST): Likewise. | |
16037 | * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype. | |
16038 | * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127. | |
16039 | (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp) | |
16040 | (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp) | |
16041 | (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp) | |
16042 | (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp) | |
16043 | (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp) | |
16044 | (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2) | |
16045 | (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2) | |
16046 | (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp) | |
16047 | (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't' | |
16048 | where appropriate for single-word registers. | |
16049 | (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp): | |
16050 | As above. Fix type attributes. | |
16051 | * config/arm/constraints.md (register_contraint "t"): Define. | |
16052 | (register_constraint "w"): Change to D0-D15, or D0-D31 for | |
16053 | VFPv3/NEON. | |
16054 | (register_constraint "x"): Define. | |
16055 | (constraint "Dv"): Define. | |
16056 | ||
16057 | 2007-07-03 Geoffrey Keating <geoffk@apple.com> | |
16058 | ||
16059 | * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL. | |
16060 | ||
16061 | 2007-07-03 Tom Tromey <tromey@redhat.com> | |
16062 | ||
16063 | * c-parser.c (objc_pq_context): Removed. | |
16064 | (objc_need_raw_identifier): Likewise. | |
16065 | (c_parser) <objc_pq_context>: New field. | |
16066 | <objc_need_raw_identifier>: Likewise. | |
16067 | (OBJC_NEED_RAW_IDENTIFIER): Removed. | |
16068 | (c_lex_one_token): Update. | |
16069 | (c_parser_objc_protocol_definition): Update. | |
16070 | (c_parser_objc_method_definition): Update. | |
16071 | (c_parser_objc_methodproto): Update. | |
16072 | (c_parser_declspecs): Update. | |
16073 | ||
16074 | 2007-07-03 David Ung <davidu@mips.com> | |
16075 | ||
16076 | * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors. | |
16077 | ||
16078 | 2007-07-03 David Ung <davidu@mips.com> | |
16079 | Richard Sandiford <richard@codesourcery.com> | |
16080 | ||
16081 | * doc/invoke.texi: Document -march=74kf3_2. | |
16082 | * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type. | |
16083 | (TUNE_74K): Check for it. | |
16084 | * config/mips/mips.c (mips_cpu_info): Add 74kf3_2. | |
16085 | (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2. | |
16086 | * config/mips/mips.md (cpu): Add 74kf3_2. | |
16087 | * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop) | |
16088 | (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo) | |
16089 | (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump) | |
16090 | (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add | |
16091 | 74kf3_2 to the CPU list. | |
16092 | (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore) | |
16093 | (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf) | |
16094 | (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df) | |
16095 | (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1) | |
16096 | (r74kf3_2_fxfer_from_c1): New insn reservations. | |
16097 | ||
16098 | 2007-07-03 Richard Sandiford <richard@codesourcery.com> | |
16099 | David Ung <davidu@mips.com> | |
16100 | ||
16101 | * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and | |
16102 | -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx] | |
16103 | and 74k[fx]. Document aliases for the new options. | |
16104 | * config/mips/mips.h (PROCESSOR_24KF): Rename to... | |
16105 | (PROCESSOR_24KF2_1): ...this. | |
16106 | (PROCESSOR_24KX): Rename to... | |
16107 | (PROCESSOR_24KF1_1): ...this. | |
16108 | (PROCESSOR_74KF): Rename to... | |
16109 | (PROCESSOR_74KF2_1): ...this. | |
16110 | (PROCESSOR_74KX): Rename to... | |
16111 | (PROCESSOR_74KF1_1): ...this. | |
16112 | (TUNE_74K): Update PROCESSOR_* names. | |
16113 | * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym | |
16114 | for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise | |
16115 | the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names. | |
16116 | (mips_rtx_cost_data): Update processor names in comments. | |
16117 | (mips_issue_rate): Update PROCESSOR_* names. | |
16118 | * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to | |
16119 | 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1. | |
16120 | * config/mips/24k.md: Rename FPU-related r24k_* insn reservations | |
16121 | to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*. | |
16122 | Update cpu attribute names. | |
16123 | (r24k_fpu_iss): Rename this reservation to... | |
16124 | (r24kf2_1_fpu_iss): ...this and update all uses. | |
16125 | (r24kx_fpu_iss): Rename this reservation to... | |
16126 | (r24kf1_1_fpu_iss): ...this and update all uses. | |
16127 | * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations | |
16128 | to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*. | |
16129 | Update cpu attribute names. | |
16130 | ||
16131 | 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org> | |
16132 | ||
16133 | * config/m32r/constraints.md: New file. | |
16134 | * config/m32r/m32r.c: Include tm-constrs.h. | |
16135 | (small_data_operand): Use satisfies_constraint_* instead of macro. | |
16136 | (addr24_operand, gen_compare): Likewise. | |
16137 | * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove. | |
16138 | (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT, | |
16139 | CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, | |
16140 | EXTRA_CONSTRAINT): Likewise. | |
16141 | * config/m32r/m32r.md: Include constraints.md. | |
16142 | (*movsi_insn): Use satisfies_constraint_* instead of macro. | |
16143 | (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise. | |
16144 | * config/m32r/predicates.md (conditional_move_operand): Likewise. | |
16145 | (two_insn_const_operand, int8_operand, uint16_operand, | |
16146 | reg_or_int16_operand, reg_or_uint16_operand, | |
16147 | reg_or_cmp_int16_operand, cmp_int16_operand, | |
16148 | seth_add3_operand): Likewise. | |
16149 | ||
16150 | 2007-07-03 Eric Christopher <echristo@gmail.com> | |
16151 | ||
16152 | * libgcc2.h: Conditionally declare __bswapsi2 and | |
16153 | __bswapdi2. | |
16154 | ||
16155 | 2007-07-03 H.J. Lu <hongjiu.lu@intel.com> | |
16156 | ||
16157 | * ddg.c (check_sccs): Define only if ENABLE_CHECKING is | |
16158 | defined. | |
16159 | ||
16160 | 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> | |
16161 | ||
16162 | PR target/28307 | |
16163 | * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] | |
16164 | (__gthrw_pragma): Provide default definition. | |
16165 | (__gthrw2): Use it. | |
16166 | * gthr-posix.c (__gthrw_pragma): Define. | |
16167 | ||
16168 | 2007-07-03 Daniel Berlin <dberlin@dberlin.org> | |
16169 | ||
16170 | * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p | |
16171 | before declaring inequality. | |
16172 | ||
16173 | 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
16174 | ||
16175 | * combine.c (recog_for_combine): Log the success or failure of | |
16176 | matching new insn patterns against the machine description in | |
16177 | detailed dumps. | |
16178 | ||
16179 | 2007-07-03 Revital Eres <eres@il.ibm.com> | |
16180 | ||
16181 | * ddg.c (print_sccs): New function. | |
16182 | (check_sccs): New function. | |
16183 | (create_ddg_all_sccs): Use it. | |
16184 | * ddg.h (print_sccs): Declare. | |
16185 | * modulo-sched.c (sms_order_nodes): Call print_sccs. | |
16186 | ||
16187 | 2007-07-03 Uros Bizjak <ubizjak@gmail.com> | |
16188 | ||
16189 | * targhooks.h (default_mode_for_suffix): New function declaration. | |
16190 | * targhooks.c (default_mode_for_suffix): New default target hook. | |
16191 | * target.h (struct c): New structure in the targetm struct. | |
16192 | (mode_for_suffix): New target hook as part of struct c. | |
16193 | target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as | |
16194 | default_mode_for_suffix. | |
16195 | (TARGET_C): New define. | |
16196 | * c-lex.c: Include "target.h". | |
16197 | (interpret_float): Use targetm.c.mode_for_suffix to determine | |
16198 | the mode for a given non-standard suffix. | |
16199 | Makefile.in (c-lex.o): Depend on $(TARGET_H). | |
16200 | ||
16201 | * config/i386/i386.c (ix86_c_mode_for_suffix): New static function. | |
16202 | (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix. | |
16203 | ||
16204 | * doc/extend.texi (Floating Types): New node. Document __float80 and | |
16205 | __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes. | |
16206 | ||
16207 | 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org> | |
16208 | ||
16209 | PR target/32506 | |
16210 | * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand | |
16211 | predicate instead of target_operand. | |
16212 | (divsi3_i1_media, divsi3_media_2): Likewise. | |
16213 | ||
16214 | 2007-07-02 Eric Botcazou <ebotcazou@adacore.com> | |
16215 | ||
16216 | * tree.h (alias_sets_might_conflict_p): Rename into | |
16217 | alias_sets_must_conflict_p. | |
16218 | * alias.c (alias_sets_might_conflict_p): Likewise. | |
16219 | (alias_sets_conflict_p): Use it. | |
16220 | (objects_must_conflict_p): Likewise. | |
16221 | * c-common.c (strict_aliasing_warning): Adjust. | |
16222 | ||
16223 | 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
16224 | ||
16225 | * rtlhooks.c (gen_lowpart_if_possible): Check for | |
16226 | invalid subreg before calling gen_lowpart_SUBREG. | |
16227 | ||
16228 | 2007-07-02 Geoffrey Keating <geoffk@apple.com> | |
16229 | ||
16230 | * config/darwin9.h: Add copyright notice. | |
16231 | (LINK_COMMAND_SPEC): Add comment. | |
16232 | (DARWIN_LIBSYSTEM_HAS_UNWIND): Define. | |
16233 | * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on | |
16234 | DARWIN_LIBSYSTEM_HAS_UNWIND. | |
16235 | ||
16236 | 2007-07-02 Jakub Jelinek <jakub@redhat.com> | |
16237 | ||
16238 | PR libgomp/32468 | |
16239 | * omp-low.c (check_combined_parallel): New function. | |
16240 | (lower_omp_parallel): Call it via walk_stmts, set | |
16241 | OMP_PARALLEL_COMBINED if appropriate. | |
16242 | (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS | |
16243 | isn't the only statement in WS_ENTRY_BB or OMP_RETURN | |
16244 | the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED, | |
16245 | don't consider it as combined parallel. | |
16246 | ||
16247 | 2007-07-02 Richard Sandiford <richard@codesourcery.com> | |
16248 | ||
16249 | * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). | |
16250 | (gcc_tooldir): Likewise. | |
16251 | * configure: Regenerate. | |
16252 | * Makefile.in (libsubdir_to_prefix): New variable, based on the | |
16253 | old configure.ac gcc_tooldir setting. | |
16254 | (prefix_to_exec_prefix): New variable. | |
16255 | (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) | |
16256 | rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. | |
16257 | ||
16258 | 2007-07-02 Daniel Berlin <dberlin@dberlin.org> | |
16259 | ||
16260 | Fix PR tree-optimization/32583 | |
16261 | Fix PR tree-optimization/32584 | |
16262 | * tree-ssa-pre.c (phi_translate): Always pass seen bitmap. | |
16263 | (phi_translate_set): Use phi_translate directly now. | |
16264 | (make_values_for_stmt): Don't value number RHS if we already know | |
16265 | it is constant. | |
16266 | ||
16267 | 2007-07-02 Steve Ellcey <sje@cup.hp.com> | |
16268 | Jim Wilson <wilson@specifix.com> | |
16269 | ||
16270 | PR target/31684 | |
16271 | * haifa-sched.c (add_to_speculative_block): Change copy_rtx to | |
16272 | copy_insn. | |
16273 | ||
16274 | 2007-07-02 Sandra Loosemore <sandra@codesourcery.com> | |
16275 | Richard Sandiford <richard@codesourcery.com> | |
16276 | Nigel Stephens <nigel@mips.com> | |
16277 | ||
16278 | * config/mips/mips-protos.h (mips16e_save_restore_info): New struct. | |
16279 | (mips16e_output_save_restore): Declare. | |
16280 | (mips16e_save_restore_pattern_p): Likewise. | |
16281 | * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro. | |
16282 | * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8 | |
16283 | for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16 | |
16284 | && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT. | |
16285 | (BITSET_P): New global macro, extracted from... | |
16286 | (mips_for_each_saved_reg): ...here. | |
16287 | (mips16e_save_restore_info): New struct. | |
16288 | (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables. | |
16289 | (mips16e_save_restore_regs): New variable. | |
16290 | (mips_split_plus, mips16e_find_first_register): New functions. | |
16291 | (mips16e_mask_registers): New function. | |
16292 | (compute_frame_size): Expand the commentary before the function. | |
16293 | Enforce the MIPS16e save and restore register range restrictions. | |
16294 | Pad the general register save area at the low end. | |
16295 | (mips16e_save_restore_reg, mips16e_build_save_restore) | |
16296 | (mips16e_save_restore_pattern_p, mips16e_add_register_range) | |
16297 | (mips16e_output_save_restore, mips16e_collect_propagate_value) | |
16298 | (mips16e_collect_argument_save, mips16e_collect_argument_saves): | |
16299 | New functions. | |
16300 | (mips_expand_prologue, mips_expand_epilogue): Handle | |
16301 | GENERATE_MIPS16E_SAVE_RESTORE. | |
16302 | * config/mips/mips.md (*mips16e_save_restore): New pattern. | |
16303 | ||
16304 | 2007-07-02 Uros Bizjak <ubizjak@gmail.com> | |
16305 | ||
16306 | PR tree-optimization/31966 | |
16307 | PR tree-optimization/32533 | |
16308 | * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not | |
16309 | "basic_block" description as its third argument. Update function | |
16310 | calls to get destination bb from "edge" argument. Save "cond" into | |
16311 | aux field of the edge. Update prototype for changed arguments. | |
16312 | (if_convertible_loop_p): Clear aux field of incoming edges if bb | |
16313 | contains phi node. | |
16314 | (find_phi_replacement_condition): Operate on incoming edges, not | |
16315 | on predecessor blocks. If there is a condition saved in the | |
16316 | incoming edge aux field, AND it with incoming bb predicate. | |
16317 | Return source bb of the first edge. | |
16318 | (clean_predicate_lists): Clean aux field of outgoing node edges. | |
16319 | (tree_if_conversion): Do not initialize cond variable. Move | |
16320 | variable declaration into the loop. | |
16321 | (replace_phi_with_cond_gimple_modify_stmt): Remove unneded | |
16322 | initializations of new_stmt, arg0 and arg1 variables. | |
16323 | ||
16324 | 2007-07-02 Jakub Jelinek <jakub@redhat.com> | |
16325 | ||
16326 | * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p, | |
16327 | SSA_NAMEs, RESULT_DECLs and PARM_DECLs. | |
16328 | ||
16329 | 2007-07-02 Richard Guenther <rguenther@suse.de> | |
16330 | ||
16331 | * tree-ssa.c (useless_type_conversion_p): Document | |
16332 | future intent as defining the middle-end type system. | |
16333 | Re-structure to call langhook last, group by type class, | |
16334 | mark questionable parts. | |
16335 | ||
16336 | 2007-07-02 Richard Guenther <rguenther@suse.de> | |
16337 | ||
16338 | * tree-flow.h (types_compatible_p): Declare. | |
16339 | * tree-ssa.c (types_compatible_p): New function. | |
16340 | * ipa-type-escape.c (discover_unique_type): Use | |
16341 | types_compatible_p instead of lang_hooks.types_compatible_p. | |
16342 | * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. | |
16343 | * tree-vn.c (expressions_equal_p): Likewise. | |
16344 | * tree.c (fields_compatible_p): Likewise. | |
16345 | * tree-ssa-dom.c (avail_expr_eq): Likewise. | |
16346 | (cprop_operand): Use useless_type_conversion_p instead of | |
16347 | lang_hooks.types_compatible_p. | |
16348 | * tree-inline.c (setup_one_parameter): Likewise. | |
16349 | (declare_return_variable): Likewise. | |
16350 | * tree-nrv.c (tree_nrv): Likewise. | |
16351 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. | |
16352 | (maybe_fold_offset_to_component_ref): Likewise. | |
16353 | (maybe_fold_offset_to_reference): Likewise. | |
16354 | * tree-ssa-copy.c (may_propagate_copy): Likewise. | |
16355 | (merge_alias_info): Likewise. | |
16356 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. | |
16357 | * tree-ssa-phiopt.c (conditional_replacement): Likewise. | |
16358 | * tree-ssa-reassoc.c (optimize_ops_list): Likewise. | |
16359 | * tree-tailcall.c (find_tail_calls): Likewise. | |
16360 | * tree-vect-generic.c (expand_vector_operations_1): Likewise. | |
16361 | * gimplify.c (canonicalize_addr_expr): Likewise. | |
16362 | (fold_indirect_ref_rhs): Likewise. | |
16363 | (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type. | |
16364 | (cpt_same_type): Likewise. | |
16365 | (check_pointer_types_r): Swap parameters to cpt_same_type | |
16366 | where appropriate. | |
16367 | * fold-const.c (fold_convert): Revert fix for PR15988. | |
16368 | * tree-inline.c (setup_one_parameter): Instead fix it here by | |
16369 | using fold_build1 instead of fold_convert and checking for | |
16370 | error_mark_node. Convert only if the conversion is necessary. | |
16371 | ||
16372 | 2007-07-02 Joseph Myers <joseph@codesourcery.com> | |
16373 | ||
16374 | * configure.ac: Check for .gnu_attribute on Power. | |
16375 | * configure: Regenerate. | |
16376 | * config/rs6000/rs6000.c (rs6000_file_start): If supported, output | |
16377 | attribute for floating-point ABI. | |
16378 | ||
16379 | 2007-07-02 Ira Rosen <irar@il.ibm.com> | |
16380 | ||
16381 | PR tree-optimization/32230 | |
16382 | PR tree-optimization/32477 | |
16383 | * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base | |
16384 | address is a constant. | |
16385 | ||
16386 | 2007-07-02 Richard Sandiford <richard@codesourcery.com> | |
16387 | ||
16388 | * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*) | |
16389 | (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*) | |
16390 | (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level | |
16391 | stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT. | |
16392 | Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the | |
16393 | 64-bit targets. Add support for *-elfoabi*. | |
16394 | * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use | |
16395 | different settings if $(tm_defines) does not select the EABI. | |
16396 | (MULTILIB_EXCLUSIONS): Define in those circumstances. | |
16397 | * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro. | |
16398 | (MIPS_ARCH_OPTION_SPEC): Likewise. | |
16399 | (MIPS_ISA_LEVEL_SPEC): Likewise. | |
16400 | (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC. | |
16401 | * config/mips/elfoabi.h: New file. | |
16402 | ||
16403 | 2007-07-02 Richard Guenther <rguenther@suse.de> | |
16404 | ||
16405 | * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ... | |
16406 | (useless_type_conversion_p): ... this. | |
16407 | * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ... | |
16408 | (useless_type_conversion_p): ... this. | |
16409 | * builtins.c (fold_builtin_memory_op): Rename | |
16410 | tree_ssa_useless_type_conversion_1 to useless_type_conversion_p. | |
16411 | * tree-cfg.c (verify_expr): Likewise. | |
16412 | * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise. | |
16413 | * tree-ssa-ccp.c (ccp_fold): Likewise. | |
16414 | * tree-ssa-copy.c (may_propagate_copy): Likewise. | |
16415 | * tree-ssa-dom.c (eliminate_redundant_computations): Likewise. | |
16416 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. | |
16417 | * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise. | |
16418 | * tree-ssa-pre.c (eliminate): Likewise. | |
16419 | * tree-ssa.c (delete_tree_ssa): Likewise. | |
16420 | (tree_ssa_useless_type_conversion): Likewise. | |
16421 | * tree.c (build2_stat): Likewise. | |
16422 | ||
16423 | 2007-07-01 Daniel Berlin <dberlin@dberlin.org> | |
16424 | ||
16425 | Fix PR tree-optimization/32571 | |
16426 | * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid | |
16427 | simplifying them. | |
16428 | ||
16429 | 2007-07-01 Daniel Berlin <dberlin@dberlin.org> | |
16430 | ||
16431 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants | |
16432 | and other expected operations explicitly, change default to | |
16433 | gcc_unreachable. | |
16434 | ||
16435 | 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com> | |
16436 | ||
16437 | * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a | |
16438 | PARALLEL. | |
16439 | * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight) | |
16440 | (tls_load_dot_plus_eight): Move the label number into the unspec. | |
16441 | * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise. | |
16442 | ||
16443 | 2007-07-01 Andreas Schwab <schwab@suse.de> | |
16444 | ||
16445 | * dwarf2out.c (initial_return_save): Define only if used. | |
16446 | ||
16447 | 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com> | |
16448 | ||
16449 | Unreverting Richard's Revert of: | |
16450 | ||
16451 | 2007-06-27 Richard Sandiford <richard@codesourcery.com> | |
16452 | ||
16453 | * dce.c (deletable_insn_p_1): New function, split out from... | |
16454 | (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs | |
16455 | specially, not those inside PARALLELs. Remove BODY argument | |
16456 | and adjust recursive call accordingly. | |
16457 | (prescan_insns_for_dce): Update call to delete_insn_p. | |
16458 | ||
16459 | 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com> | |
16460 | Revital Eres <eres@il.ibm.com> | |
16461 | ||
16462 | * ddg.c (create_ddg_all_sccs): Fix missed | |
16463 | initialization of scc_nodes. | |
16464 | ||
16465 | 2007-07-01 Uros Bizjak <ubizjak@gmail.com> | |
16466 | ||
16467 | PR middle-end/32559 | |
16468 | * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or | |
16469 | X + ~X to 1 only for INTEGRAL_TYPE_P type. | |
16470 | ||
16471 | 2007-06-30 Joseph Myers <joseph@codesourcery.com> | |
16472 | ||
16473 | * configure.ac: Check for .gnu_attribute on MIPS. | |
16474 | * configure, config.in: Regenerate. | |
16475 | * config/mips/mips.c (mips_file_start): If supported, output | |
16476 | attribute for floating-point ABI. | |
16477 | ||
16478 | 2007-06-30 Uros Bizjak <ubizjak@gmail.com> | |
16479 | ||
16480 | PR target/32433 | |
16481 | * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE. | |
16482 | (ffs_cmove): New expander to expand using ctz pattern. | |
16483 | (*ffs_cmove): Remove pattern. | |
16484 | (*ffs_no_cmove): Enable only for !TARGET_CMOVE. | |
16485 | (ffsdi2): Expand using ctz pattern. | |
16486 | (*ffs_rex64): Remove pattern. | |
16487 | ||
16488 | 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
16489 | ||
16490 | PR rtl-optimization/32296 | |
16491 | * pa.md (return): Delete pattern. | |
16492 | (return_internal): Remove "(const_int 1)" from pattern. | |
16493 | (epilogue): Use return_internal pattern for trivial returns. | |
16494 | * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration. | |
16495 | * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h". | |
16496 | ||
16497 | 2007-06-30 Daniel Berlin <dberlin@dberlin.org> | |
16498 | ||
16499 | * tree-ssa-pre.c (is_exception_related): New function | |
16500 | (can_value_number_operation): Use it. | |
16501 | ||
16502 | 2007-06-30 Daniel Berlin <dberlin@dberlin.org> | |
16503 | ||
16504 | Fix PR tree-optimization/32540 | |
16505 | Fix PR tree-optimization/31651 | |
16506 | ||
16507 | * tree-ssa-sccvn.c: New file. | |
16508 | ||
16509 | * tree-ssa-sccvn.h: Ditto. | |
16510 | ||
16511 | * tree-vn.c: Include tree-ssa-sccvn.h | |
16512 | (val_expr_paid_d): Removed. | |
16513 | (value_table): Ditto. | |
16514 | (vn_compute): Ditto. | |
16515 | (val_expr_pair_hash): Ditto. | |
16516 | (val_expr_pair_expr_eq): Ditto. | |
16517 | (copy_vuses_from_stmt): Ditto. | |
16518 | (vn_delete): Ditto. | |
16519 | (vn_init): Ditto. | |
16520 | (shared_vuses_from_stmt): Ditto. | |
16521 | (print_creation_to_file): Moved up. | |
16522 | (sort_vuses): Ditto. | |
16523 | (sort_vuses_heap): Ditto. | |
16524 | (set_value_handle): Make non-static. | |
16525 | (make_value_handle): Ditto. | |
16526 | (vn_add): Rewritten to use sccvn lookups. | |
16527 | (vn_add_with_vuses): Ditto. | |
16528 | (vn_lookup): Ditto (and second argument removed). | |
16529 | (vn_lookup_with_vuses): Ditto. | |
16530 | (vn_lookup_or_add): Ditto (and second argument removed); | |
16531 | (vn_lookup_or_add_with_vuses): Ditto. | |
16532 | (vn_lookup_with_stmt): New. | |
16533 | (vn_lookup_or_add_with_stmt): Ditto. | |
16534 | (create_value_handle_for_expr): Ditto. | |
16535 | ||
16536 | * tree-ssa-pre.c: Include tree-ssa-sccvn.h. | |
16537 | (seen_during_translate): New function. | |
16538 | (phi_trans_lookup): Use iterative_hash_expr, not vn_compute. | |
16539 | (phi_trans_add): Ditto. | |
16540 | (constant_expr_p): FIELD_DECL is always constant. | |
16541 | (phi_translate_1): Renamed from phi_translate, add seen bitmap. | |
16542 | Use constant_expr_p. | |
16543 | Avoid infinite recursion on mutually valued expressions. | |
16544 | Change callers of vn_lookup_or_add. | |
16545 | (phi_translate): New function. | |
16546 | (compute_antic_safe): Allow phi nodes. | |
16547 | (create_component_ref_by_pieces): Update for FIELD_DECL change. | |
16548 | (find_or_generate_expression): Rewrite slightly. | |
16549 | (create_expression_by_pieces): Updated for vn_lookup_or_add | |
16550 | change. | |
16551 | Update VN_INFO for new names. | |
16552 | (insert_into_preds_of_block): Update for new names. | |
16553 | (add_to_exp_gen): New function. | |
16554 | (add_to_sets): Use vn_lookup_or_add_with_stmt. | |
16555 | (find_existing_value_expr): Rewrite to changed vn_lookup. | |
16556 | (create_value_expr_from): Ditto, and use add_to_exp_gen. | |
16557 | (try_look_through_load): Removed. | |
16558 | (try_combine_conversion): Ditto. | |
16559 | (get_sccvn_value): New function. | |
16560 | (make_values_for_phi): Ditto. | |
16561 | (make_values_for_stmt): Ditto. | |
16562 | (compute_avail): Rewritten for vn_lookup_or_add changes and to use | |
16563 | SCCVN. | |
16564 | (init_pre): Update for SCCVN changes. | |
16565 | (fini_pre): Ditto. | |
16566 | (execute_pre): Ditto. | |
16567 | ||
16568 | * tree-flow.h (make_value_handle): Declare. | |
16569 | (set_value_handle): Ditto. | |
16570 | (sort_vuses_heap): Ditto. | |
16571 | (vn_lookup_or_add_with_stmt): Ditto. | |
16572 | (vn_lookup_with_stmt): Ditto. | |
16573 | (vn_compute): Remove. | |
16574 | (vn_init): Ditto. | |
16575 | (vn_delete): Ditto. | |
16576 | (vn_lookup): Update arguments. | |
16577 | ||
16578 | * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h | |
16579 | (tree-vn.o): Ditto. | |
16580 | (tree-ssa-sccvn.o): New. | |
16581 | (OBJS-common): Add tree-ssa-sccvn.o | |
16582 | ||
16583 | 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
16584 | ||
16585 | PR c/4076 | |
16586 | * c-typeck.c (build_external_ref): Don't mark as used if called | |
16587 | from itself. | |
16588 | * calls.c (rtx_for_function_call): Likewise. | |
16589 | ||
16590 | 2007-06-30 Richard Sandiford <richard@codesourcery.com> | |
16591 | ||
16592 | Revert: | |
16593 | ||
16594 | 2007-06-27 Richard Sandiford <richard@codesourcery.com> | |
16595 | ||
16596 | * dce.c (deletable_insn_p_1): New function, split out from... | |
16597 | (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs | |
16598 | specially, not those inside PARALLELs. Remove BODY argument | |
16599 | and adjust recursive call accordingly. | |
16600 | (prescan_insns_for_dce): Update call to delete_insn_p. | |
16601 | ||
16602 | 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
16603 | ||
16604 | * combine.c (combine_validate_cost): New parameter NEWOTHERPAT. | |
16605 | (try_combine): Move potential calls to undo_all() so they happen | |
16606 | before we commit to using the combined insns. | |
16607 | ||
16608 | 2007-06-30 Jan Hubicka <jh@suse.cz> | |
16609 | ||
16610 | * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit | |
16611 | code. | |
16612 | ||
16613 | 2007-06-30 Thomas Neumann <tneumann@users.sourceforge.net> | |
16614 | ||
16615 | * ipa.c (cgraph_postorder): Cast according to the coding conventions. | |
16616 | (cgraph_remove_unreachable_nodes): Likewise. | |
16617 | * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0. | |
16618 | * ipa-inline.c (update_caller_keys): Cast according to the coding | |
16619 | conventions. | |
16620 | (cgraph_decide_recursive_inlining): Likewise. | |
16621 | (cgraph_decide_inlining_of_small_function): Likewise. | |
16622 | (try_inline): Likewise. | |
16623 | (cgraph_decide_inlining_incrementally): Likewise. | |
16624 | * ipa-pure-const.c (get_function_state): Likewise. | |
16625 | (scan_function): Likewise. | |
16626 | (analyze_function): Likewise. | |
16627 | (static_execute): Likewise. | |
16628 | * ipa-reference.c (scan_for_static_refs): Likewise. | |
16629 | (merge_callee_local_info): Likewise. | |
16630 | (analyze_function): Use type safe memory macros. | |
16631 | (static_execute): Likewise. Cast according to the coding conventions. | |
16632 | * ipa-type-escape.c (scan_for_regs): Cast according to the coding | |
16633 | conventions. | |
16634 | * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable | |
16635 | names. | |
16636 | (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros. | |
16637 | * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as | |
16638 | variable names. | |
16639 | ||
16640 | 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
16641 | ||
16642 | PR middle-end/30024 | |
16643 | * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0] | |
16644 | for complex modes (both int and real). | |
16645 | ||
16646 | 2007-06-29 Jan Hubicka <jh@suse.cz> | |
16647 | ||
16648 | * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change. | |
16649 | ||
16650 | 2007-06-29 Jan Hubicka <jh@suse.cz> | |
16651 | ||
16652 | PR middle-end/32372 | |
16653 | * cse.c (cse_insn): Avoid invalid sharing in between register note and | |
16654 | the insn pattern. | |
16655 | ||
16656 | 2007-06-29 Anatoly Sokolov <aesok@post.ru> | |
16657 | ||
16658 | PR target/32335 | |
16659 | * config/avr/avr.c: Include dataflow header file. | |
16660 | (expand_prologue): Adjust for prologue insn change. | |
16661 | * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once | |
16662 | inside a insn. | |
16663 | ||
16664 | 2007-06-29 Richard Guenther <rguenther@suse.de> | |
16665 | ||
16666 | PR middle-end/32493 | |
16667 | * gimplify.c (gimplify_call_expr): Ignore variable argument parts | |
16668 | during type verification. | |
16669 | ||
16670 | 2007-06-29 Jan Hubicka <jh@suse.cz> | |
16671 | ||
16672 | * recog.c (validate_change_rtx_1): Unshare TO argument. | |
16673 | ||
16674 | 2007-06-29 Uros Bizjak <ubizjak@gmail.com> | |
16675 | ||
16676 | PR tree-optimization/24659 | |
16677 | * tree-vect-transform.c (vectorizable_call): Handle | |
16678 | (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. | |
16679 | ||
16680 | * config/i386/sse.md (vec_pack_sfix_v2df): New expander. | |
16681 | * config/i386/i386.c (enum ix86_builtins) | |
16682 | [IX86_BUILTIN_VEC_PACK_SFIX]: New constant. | |
16683 | (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin | |
16684 | description. | |
16685 | (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as | |
16686 | const using def_builtin_const. | |
16687 | (ix86_expand_binop_builtin): Remove bogus assert() that insn wants | |
16688 | input operands in the same modes as the result. | |
16689 | (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT. | |
16690 | ||
16691 | 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk> | |
16692 | ||
16693 | * df-problems.c (df_set_unused_notes_for_mw): Fix formatting. | |
16694 | (df_set_dead_notes_for_mw): Likewise. | |
16695 | ||
16696 | 2007-06-29 Eric Botcazou <ebotcazou@adacore.com> | |
16697 | ||
16698 | * c-common.c (pointer_int_sum): Do the negation in sizetype. | |
16699 | ||
16700 | 2007-06-28 DJ Delorie <dj@redhat.com> | |
16701 | ||
16702 | * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon. | |
16703 | ||
16704 | 2007-06-28 Geoffrey Keating <geoffk@apple.com> | |
16705 | ||
16706 | * doc/invoke.texi (C++ Dialect Options): Document | |
16707 | fvisibility-ms-compat. | |
16708 | * c.opt (fvisibility-ms-compat): New. | |
16709 | ||
16710 | 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
16711 | ||
16712 | PR tree-opt/32417 | |
16713 | * tree-affine.c (aff_combination_add_elt): Handle | |
16714 | pointer addition specially. | |
16715 | ||
16716 | 2007-06-28 Jakub Jelinek <jakub@redhat.com> | |
16717 | ||
16718 | * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure | |
16719 | decl is non-external for AIX ABI. | |
16720 | ||
16721 | 2007-06-28 David Edelsohn <edelsohn@gnu.org> | |
16722 | ||
16723 | * config/rs6000/predicates.md (current_file_function_operand): | |
16724 | Ensure the symbol is non-external for AIX ABI. | |
16725 | ||
16726 | 2007-06-28 Nick Clifton <nickc@redhat.com> | |
16727 | ||
16728 | * common.opt (fipa-matrix-reorg): Add Optimization attribute. | |
16729 | (fdce, fdse, fpredictive-commoning): Likewise. | |
16730 | ||
16731 | 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
16732 | ||
16733 | PR other/31400 | |
16734 | * gcc.c (process_command): Recognize the new -static-libgfortran | |
16735 | option. | |
16736 | ||
16737 | 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
16738 | ||
16739 | PR target/32418 | |
16740 | * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix: | |
16741 | Use a call clobbered hard reg instead of a pseudo reg. | |
16742 | ||
16743 | 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org> | |
16744 | ||
16745 | * config/sh/sh.md (load_gbr): Use correct operand constraint. | |
16746 | ||
16747 | 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org> | |
16748 | ||
16749 | PR target/32479 | |
16750 | * config/sh/sh.md (udivsi3): Don't wrap the sequence with | |
16751 | REG_LIBCALL and REG_RETVAL notes. | |
16752 | (divsi3, mulsi3): Likewise. | |
16753 | (mulhisi3): Likewise. Use emit_libcall_block. | |
16754 | (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise. | |
16755 | ||
16756 | 2007-06-27 Seongbae Park <seongbae.park@gmail.com> | |
16757 | ||
16758 | PR rtl-optimization/32481 | |
16759 | * combine.c (adjust_for_new_dest): Rescan the changed insn. | |
16760 | ||
16761 | 2007-06-27 Richard Sandiford <richard@codesourcery.com> | |
16762 | ||
16763 | * dce.c (deletable_insn_p_1): New function, split out from... | |
16764 | (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs | |
16765 | specially, not those inside PARALLELs. Remove BODY argument | |
16766 | and adjust recursive call accordingly. | |
16767 | (prescan_insns_for_dce): Update call to delete_insn_p. | |
16768 | ||
16769 | 2007-06-27 Richard Guenther <rguenther@suse.de> | |
16770 | ||
16771 | PR middle-end/32492 | |
16772 | * tree.h (fold_convertible_p): Declare. | |
16773 | * fold-const.c (fold_convertible_p): New function. | |
16774 | * gimplify.c (gimplify_call_expr): Use fold_convertible_p | |
16775 | instead of lang_hooks.types_compatible_p. | |
16776 | ||
16777 | 2007-06-26 Jan Hubicka <jh@suse.cz> | |
16778 | ||
16779 | * fwprop.c (try_fwprop_subst): Use validate_unshare_change. | |
16780 | * postreload.c (reload_cse_simplify_set): Instead of copying the rtx | |
16781 | early use validate_unshare_change. | |
16782 | (reload_combine): Likewise. | |
16783 | * recog.c (change_t): New field unshare. | |
16784 | (validate_change_1): Rename from validate_change; add argument unshare. | |
16785 | (validate_change): Turn into wrapper of validate_change_1; update | |
16786 | prototype for bools. | |
16787 | (validate_unshare_change): New. | |
16788 | (confirm_change_group): Unshare changes if asked for; avoid unnecesary | |
16789 | calls of df_insn_rescan. | |
16790 | * recog.h (validate_change): Replace ints by bools. | |
16791 | (validate_unshare_change): Declare. | |
16792 | ||
16793 | 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com> | |
16794 | ||
16795 | * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name. | |
16796 | ||
16797 | 2007-06-26 Steve Ellcey <sje@cup.hp.com> | |
16798 | ||
16799 | * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode. | |
16800 | ||
16801 | 2007-06-25 Jan Hubicka <jh@suse.cz> | |
16802 | ||
16803 | * ipa-inline.c (cgraph_mark_inline): Assert that we never inline | |
16804 | uninlinable call. | |
16805 | (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, | |
16806 | cgraph_decide_inlining_incrementally): Move uninlinability checks to | |
16807 | places other call site specific checks are performed. | |
16808 | ||
16809 | 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
16810 | ||
16811 | PR tree-opt/32421 | |
16812 | * tree-vect-transform.c (vectorizable_operation): Convert | |
16813 | POINTER_PLUS_EXPR over to PLUS_EXPR. | |
16814 | ||
16815 | 2007-06-25 Chao-ying Fu <fu@mips.com> | |
16816 | ||
16817 | * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ, | |
16818 | UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes. | |
16819 | Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. | |
16820 | Document GET_MODE_IBIT, and GET_MODE_FBIT. | |
16821 | ||
16822 | * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT, | |
16823 | MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
16824 | (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P, | |
16825 | SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P, | |
16826 | SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P, | |
16827 | ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P, | |
16828 | ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P, | |
16829 | SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P, | |
16830 | ALL_FIXED_POINT_MODE_P): New define. | |
16831 | (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM, | |
16832 | MODE_UACCUM. | |
16833 | (GET_MODE_IBIT, GET_MODE_FBIT): New define. | |
16834 | ||
16835 | * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, | |
16836 | MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, | |
16837 | MODE_VECTOR_UACCUM): New mode classes. | |
16838 | ||
16839 | * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE, | |
16840 | UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT. | |
16841 | Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, | |
16842 | USA, UDA, and UTA. | |
16843 | ||
16844 | * genmodes.c (struct mode_data): Add ibit and fbit fields. | |
16845 | (blank_mode): Initialize ibit and fbit. | |
16846 | (adj_ibit, adj_fbit): New to adjust ibit and fbit. | |
16847 | (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, | |
16848 | MODE_UACCUM. | |
16849 | (new_adjust): Change required_class to required_class_from and | |
16850 | required_class_to for testing within a range. | |
16851 | (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, | |
16852 | MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, | |
16853 | MODE_VECTOR_UACCUM. | |
16854 | (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define. | |
16855 | (make_fixed_point_mode): New. | |
16856 | (_ADD_ADJUST): Change C to C1 and C2. | |
16857 | (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to | |
16858 | use a range for machine classes. | |
16859 | (ADJUST_IBIT, ADJUST_FBIT): New. | |
16860 | (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and | |
16861 | CONST_MODE_FBIT. | |
16862 | (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, | |
16863 | MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. | |
16864 | Emit adjustment for ibit and fbit. | |
16865 | (emit_mode_ibit, emit_mode_fbit): New. | |
16866 | (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit. | |
16867 | ||
16868 | 2007-06-25 Nathan Froyd <froydnj@codesourcery.com> | |
16869 | ||
16870 | * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand | |
16871 | as the source of the set. | |
16872 | ||
16873 | 2007-06-25 Roman Zippel <zippel@linux-m68k.org> | |
16874 | ||
16875 | * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P, | |
16876 | FP_REGNO_P): Use IN_RANGE. | |
16877 | (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. | |
16878 | (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New. | |
16879 | (DATA_REG_P): Use DATA_REGNO_P. | |
16880 | (FP_REG_P): Use FP_REGNO_P. | |
16881 | (ADDRESS_REG_P): Use ADDRESS_REGNO_P. | |
16882 | * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use | |
16883 | REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P. | |
16884 | ||
16885 | 2007-06-24 Jan Hubicka <jh@suse.cz> | |
16886 | ||
16887 | PR middle-end/30563 | |
16888 | * cgraphunit.c (cgraph_analyze_function): Fix ordering problem. | |
16889 | ||
16890 | 2007-06-24 Sebastian Pop <sebpop@gmail.com> | |
16891 | ||
16892 | PR middle-end/32461 | |
16893 | * fold-const.c (fold_binary): Strip nops of operand 0 | |
16894 | of BIT_NOT_EXPR before calling operand_equal_p. | |
16895 | * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New. | |
16896 | * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New. | |
16897 | ||
16898 | 2007-06-23 Mark Mitchell <mark@codesourcery.com> | |
16899 | ||
16900 | * doc/extend.texi: Document that dllimport and dllexport imply | |
16901 | default visibility. | |
16902 | * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the | |
16903 | imported or exported declaration, including type declarations. | |
16904 | * c-common.c (handle_visibility_attribute): Check for conflicts | |
16905 | with dllimport/dllexport. | |
16906 | (c_determine_visibility): Handle dllimport/dllexport as an | |
16907 | explicit visibility atttribute. | |
16908 | ||
16909 | 2007-06-23 Richard Guenther <rguenther@suse.de> | |
16910 | ||
16911 | PR tree-optimization/16876 | |
16912 | PR middle-end/29478 | |
16913 | * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag | |
16914 | for CALL_EXPRs. | |
16915 | * tree-inline.c (initialize_inlined_parameters): Do not call | |
16916 | lang_hooks.tree_inlining.convert_parm_for_inlining. | |
16917 | * cgraphbuild.c (initialize_inline_failed): Set inline failed | |
16918 | reason for mismatched types. | |
16919 | * gimplify.c (gimplify_call_expr): Verify the call expression | |
16920 | arguments match the called function type signature. Otherwise | |
16921 | mark the call expression to be not considered for inlining | |
16922 | using CALL_CANNOT_INLINE_P flag. | |
16923 | * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the | |
16924 | edges call expression. | |
16925 | (cgraph_decide_inlining_of_small_function): Likewise. | |
16926 | (cgraph_decide_inlining): Likewise. | |
16927 | * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): | |
16928 | Remove define. | |
16929 | * c-tree.h (c_convert_parm_for_inlining): Remove declaration. | |
16930 | * c-typeck.c (c_convert_parm_for_inlining): Remove. | |
16931 | * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining): | |
16932 | Remove declaration. | |
16933 | (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define. | |
16934 | * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): | |
16935 | Remove. | |
16936 | * langhooks.h (struct lang_hooks_for_tree_inlining): Remove | |
16937 | convert_parm_for_inlining member. | |
16938 | ||
16939 | 2007-06-23 Richard Earnshaw <rearnsha@arm.com> | |
16940 | ||
16941 | PR target/31152 | |
16942 | * arm.md (negscc): Match the correct operand for optimized LT0 test. | |
16943 | Remove optimization for GT. | |
16944 | ||
16945 | 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com> | |
16946 | ||
16947 | PR middle-end/32437 | |
16948 | * dce.c (deletable_insn_p): Add extra parameter and recurse if insn | |
16949 | is a PARALLEL. | |
16950 | (prescan_insns_for_dce): Add extra parameter. | |
16951 | ||
16952 | 2007-06-23 Jan Hubicka <jh@suse.cz> | |
16953 | ||
16954 | PR middle-end/31541 | |
16955 | * gimplify.c (mark_addressable): New function. | |
16956 | (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it. | |
16957 | ||
16958 | 2007-06-22 Uros Bizjak <ubizjak@gmail.com> | |
16959 | ||
16960 | PR middle-end/32374 | |
16961 | * expr.c (store_constructor): Do not clobber non-zeroed memory. | |
16962 | ||
16963 | 2007-06-22 Uros Bizjak <ubizjak@gmail.com> | |
16964 | ||
16965 | PR target/32413 | |
16966 | * config/i386/i386.c (ix86_register_move_cost): Rise the cost of | |
16967 | moves between MMX/SSE registers to at least 8 units to prevent | |
16968 | ICE caused by non-tieable SI/HI/QImodes in SSE registers. | |
16969 | ||
16970 | 2007-06-22 Uros Bizjak <ubizjak@gmail.com> | |
16971 | ||
16972 | * config/i386/i386.c (override_options): Correct x86_sahf | |
16973 | setting condition. | |
16974 | ||
16975 | 2007-06-21 David Daney <ddaney@avtrex.com> | |
16976 | ||
16977 | PR target/32406 | |
16978 | * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER | |
16979 | to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. | |
16980 | (exception_receiver): Renamed to ... | |
16981 | (nonlocal_goto_receiver): ... this. | |
16982 | ||
16983 | 2007-06-22 Roman Zippel <zippel@linux-m68k.org> | |
16984 | ||
16985 | * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE. | |
16986 | (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for | |
16987 | partial register accesses. | |
16988 | ||
16989 | 2007-06-21 Adam Nemet <anemet@caviumnetworks.com> | |
16990 | ||
16991 | * fold-const.c (debug_fold_checksum): Move it under | |
16992 | ENABLE_FOLD_CHECKING. | |
16993 | ||
16994 | 2007-06-21 Sebastian Pop <sebpop@gmail.com> | |
16995 | ||
16996 | PR middle-end/20623 | |
16997 | * tree.h (debug_fold_checksum): Declared. | |
16998 | * fold-const.c (build_fold_addr_expr_with_type_1): New. | |
16999 | (build_fold_addr_expr_with_type, build_fold_addr_expr): Use | |
17000 | build_fold_addr_expr_with_type_1. | |
17001 | (fold_addr_expr, debug_fold_checksum): New. | |
17002 | (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME. | |
17003 | (fold_unary, fold_comparison, split_address_to_core_and_offset): | |
17004 | Use fold_addr_expr. | |
17005 | ||
17006 | 2007-06-21 Sebastian Pop <sebpop@gmail.com> | |
17007 | ||
17008 | PR tree-optimization/19590 | |
17009 | * tree-vrp.c (adjust_range_with_scev): Set the range when the result | |
17010 | of scev is a constant. | |
17011 | ||
17012 | 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com> | |
17013 | ||
17014 | * df-problems.c (df_note_bb_compute): Made computation of live | |
17015 | info consistent with df_lr. | |
17016 | ||
17017 | 2007-06-21 Richard Guenther <rguenther@suse.de> | |
17018 | ||
17019 | PR tree-optimization/32453 | |
17020 | * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR | |
17021 | for pointer anti-range. | |
17022 | ||
17023 | 2007-06-21 H.J. Lu <hongjiu.lu@intel.com> | |
17024 | ||
17025 | * config/i386/i386.c (processor_target_table): Increase maximum | |
17026 | skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and | |
17027 | default 64bit. | |
17028 | ||
17029 | * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8 | |
17030 | byte alignment if > 8 byte alignment is preferred. | |
17031 | * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17032 | ||
17033 | 2007-06-21 Jakub Jelinek <jakub@redhat.com> | |
17034 | ||
17035 | PR tree-optimization/31866 | |
17036 | * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing | |
17037 | if ASM_EXPR's input is not a SSA_NAME. | |
17038 | ||
17039 | PR middle-end/32362 | |
17040 | * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL, | |
17041 | but decl is a global var, instead return decl. | |
17042 | * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses | |
17043 | even for is_global_var decls, if they are private in some outer | |
17044 | context. | |
17045 | ||
17046 | 2007-06-21 Richard Guenther <rguenther@suse.de> | |
17047 | ||
17048 | PR tree-optimization/32451 | |
17049 | * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags. | |
17050 | ||
17051 | 2007-06-21 Christian Bruel <christian.bruel@st.com> | |
17052 | ||
17053 | * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare. | |
17054 | * config/sh/sh.c (sh_loads_bankedreg_p): New function. | |
17055 | (push_regs): Changed saving order or banked registers. | |
17056 | (sh_expand_epilogue): Likewise. | |
17057 | * config/sh/sh.h (BANKED_REGISTER_P): New macro. | |
17058 | (FIRST_BANKED_REG): Likewise. | |
17059 | (LAST_BANKED_REG): Likewise. | |
17060 | * config/sh/sh.md (banked) New attribute. | |
17061 | (in_delay_slot): Check banked attribute. | |
17062 | ||
17063 | 2007-06-20 Sebastian Pop <sebpop@gmail.com> | |
17064 | ||
17065 | PR tree-optimization/32075 | |
17066 | * tree-data-ref.c (subscript_dependence_tester_1, | |
17067 | analyze_miv_subscript, analyze_overlapping_iterations, | |
17068 | add_distance_for_zero_overlaps, build_classic_dist_vector, | |
17069 | subscript_dependence_tester_1, analyze_overlapping_iterations, | |
17070 | subscript_dependence_tester, access_functions_are_affine_or_constant_p, | |
17071 | compute_affine_dependence, compute_all_dependences): Pass loop_nest | |
17072 | to evolution_function_is_affine_multivariate_p. | |
17073 | ||
17074 | 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr> | |
17075 | ||
17076 | * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. | |
17077 | ||
17078 | 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
17079 | ||
17080 | PR target/32335 | |
17081 | * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue | |
17082 | for TARGET_A16. | |
17083 | * config/m32c/prologue.md (epilogue_exitd_16): New. | |
17084 | (epilogue_reit_16): New. | |
17085 | (epilogue_exitd): Rename to epilogue_exitd_24. | |
17086 | (epilogue_reit): Rename to epilogue_reit_24. | |
17087 | ||
17088 | 2007-06-20 Seongbae Park <seongbae.park@gmail.com> | |
17089 | Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
17090 | ||
17091 | * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg): | |
17092 | New counters. | |
17093 | * haifa-sched.c (queue_to_ready): Don't requeue next insn | |
17094 | if dbg_cnt (sched_insn) reaches the limit. | |
17095 | (choose_ready): New parameter INSN_PTR and new return value. | |
17096 | (schedule_block): Handle dbg_cnt (sched_insn). Handle | |
17097 | the new return value from choose_ready. | |
17098 | * global.c (global_aloc): New dbgcnt global_alloc_at_reg. | |
17099 | (rest_of_handle_global_alloc): New global_alloc_at_func. | |
17100 | ||
17101 | 2007-06-20 Adam Nemet <anemet@caviumnetworks.com> | |
17102 | ||
17103 | PR tree-optimization/25737 | |
17104 | * tree.h (struct tree_struct_field_tag): Add new field alias_set. | |
17105 | (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros. | |
17106 | * tree-flow.h (struct fieldoff): Add new field alias_set. | |
17107 | * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new | |
17108 | argument addressable_type. Set alias_set of fieldoff. | |
17109 | * tree-ssa-alias.c (create_sft): Add new argument alias_set. | |
17110 | (create_overlap_variables_for): Pass alias_set from fieldoff to | |
17111 | create_sft. | |
17112 | * alias.c (get_alias_set): Use alias_set from SFT if set. | |
17113 | ||
17114 | 2007-06-20 Hui-May Chang <hm.chang@apple.com> | |
17115 | ||
17116 | * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size | |
17117 | of a variable as an unsigned HOST_WIDE_INT integer. | |
17118 | ||
17119 | 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz> | |
17120 | ||
17121 | PR rtl-optimization/32405 | |
17122 | * loop-iv.c (iv_get_reaching_def): Fail for partial defs. | |
17123 | ||
17124 | 2007-06-20 Jakub Jelinek <jakub@redhat.com> | |
17125 | ||
17126 | * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H). | |
17127 | ||
17128 | PR middle-end/31959 | |
17129 | * builtins.c: Include diagnostic.h. | |
17130 | (expand_builtin_expect): Make gcc_assert more permissive. | |
17131 | * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H). | |
17132 | ||
17133 | PR inline-asm/32109 | |
17134 | * gimplify.c (gimplify_asm_expr): Issue error if type is addressable | |
17135 | and !allows_mem. | |
17136 | ||
17137 | PR middle-end/32285 | |
17138 | * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments | |
17139 | if ACCUMULATE_OUTGOING_ARGS. | |
17140 | ||
17141 | 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
17142 | ||
17143 | * config/m68hc11/m68hc11.c: Include dataflow header file. | |
17144 | (m68hc11_reorg): Port to dataflow. | |
17145 | ||
17146 | 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com> | |
17147 | ||
17148 | * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. | |
17149 | (struct df_problem.free_blocks_on_set_blocks): New field. | |
17150 | (struct dataflow.optional_p): New field. | |
17151 | (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. | |
17152 | (df_live_set_all_dirty): New function. | |
17153 | * df-scan.c (df_scan_alloc): Initialize optional_p. | |
17154 | (problem_SCAN): Initialize free_blocks_on_set_blocks. | |
17155 | * df-core.c (df_set_blocks): Removed use of | |
17156 | DF_FIRST_OPTIONAL_PROBLEM. Now uses | |
17157 | df_problem.free_blocks_on_set_blocks to determine which blocks are | |
17158 | recycled. | |
17159 | (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. | |
17160 | (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now | |
17161 | uses dataflow.optional_p to determine if problem should be | |
17162 | deleted. | |
17163 | (rest_of_handle_df_initialize): Only start live problem if | |
17164 | -02 or above. | |
17165 | (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. | |
17166 | * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, | |
17167 | df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. | |
17168 | (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, | |
17169 | problem_NOTE): Initialize free_blocks_on_set_blocks. | |
17170 | (df_lr_bb_local_compute): Recompute luids if df_live problem is | |
17171 | not active. | |
17172 | (df_live_set_all_dirty, df_note_alloc): New function. | |
17173 | * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to | |
17174 | df_get_live_*. | |
17175 | * sched_ebb.c (compute_jump_reg_dependencies): Ditto. | |
17176 | * postreload.c (reload_combine): Ditto. | |
17177 | * cse.c (cse_extended_basic_block): Ditto. | |
17178 | * regmove.c (mark_flags_life_zones): Ditto. | |
17179 | * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, | |
17180 | erase_matching_seqs): Ditto. | |
17181 | * bt-load.c (compute_defs_uses_and_gen): Ditto. | |
17182 | * integrate (allocate_initial_values): Ditto. | |
17183 | * combine.c (reg_dead_at_p): Ditto. | |
17184 | * resource.c (mark_target_live_regs): Ditto. | |
17185 | * sched-rgn.c (check_live_1, update_live_1): Ditto. | |
17186 | * config/sh/sh.c (find_r0_life_regions): Ditto. | |
17187 | * global.c (rest_of_handle_global_alloc): Only add back df_live | |
17188 | for -O > 1. | |
17189 | * local-alloc.c (rest_of_handle_local_alloc): Only remove | |
17190 | df_live for -O > 1. | |
17191 | * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to | |
17192 | df_get_live_*. | |
17193 | (if_convert): Make sure df_live is there at -O == 1. | |
17194 | (pass_if_after_combine): Cleanup flags. | |
17195 | * init-regs.c (initialize_uninitialized_regs): Make sure df_live | |
17196 | is there at -O == 1. | |
17197 | ||
17198 | 2007-06-19 Seongbae Park <seongbae.park@gmail.com> | |
17199 | ||
17200 | * config/arm/arm.c (arm_get_frame_offsets): Set | |
17201 | offsets->locals_base to avoid negative stack size. | |
17202 | (thumb1_expand_prologue): Assert on negative stack size. | |
17203 | ||
17204 | 2007-06-19 Sebastian Pop <sebpop@gmail.com> | |
17205 | ||
17206 | PR tree-optimization/32367 | |
17207 | * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side | |
17208 | of the chrec has no evolution in that loop. | |
17209 | * testsuite/gcc.dg/tree-ssa/pr32367.c: New. | |
17210 | ||
17211 | 2007-06-19 Bob Wilson <bob.wilson@acm.org> | |
17212 | ||
17213 | * config/xtensa/xtensa.c: Include "df.h". | |
17214 | (xtensa_builtin_saveregs): Use adjust_address instead of | |
17215 | change_address. | |
17216 | (xtensa_va_start): Invoke make_tree with sizetype for | |
17217 | expand_builtin_saveregs and then convert the result to a pointer. | |
17218 | Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst. | |
17219 | (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst. | |
17220 | Subtract argument size from index value as integers and then use | |
17221 | POINTER_PLUS_EXPR to add the result to the array address. | |
17222 | ||
17223 | 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
17224 | ||
17225 | PR target/32335 | |
17226 | * config/m32c/m32c.c: Include dataflow header file. | |
17227 | (m32c_emit_prologue): Adjust for prologue insn change. | |
17228 | * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO | |
17229 | once inside a PARALLEL. Assume frame size passed in operand 0 | |
17230 | includes space to save the fb register. | |
17231 | (prologue_enter_24): Likewise. | |
17232 | (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL. | |
17233 | ||
17234 | 2007-06-19 David Daney <ddaney@avtrex.com | |
17235 | ||
17236 | PR target/32313 | |
17237 | * config/mips/mips.md (cprestore): Mark $gp as used. | |
17238 | ||
17239 | 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
17240 | ||
17241 | PR target/32369 | |
17242 | * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix. | |
17243 | (frv_ifcvt_modify_insn): Likewise. | |
17244 | ||
17245 | 2007-06-19 Richard Guenther <rguenther@suse.de> | |
17246 | ||
17247 | * tree-ssa-structalias.c (handle_ptr_arith): Make sure to | |
17248 | only handle positive offsets that fit in a HOST_WIDE_INT. | |
17249 | ||
17250 | 2007-06-19 Uros Bizjak <ubizjak@gmail.com> | |
17251 | ||
17252 | * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity | |
17253 | result of rsqrt insn for zero input argument to avoid NaN. | |
17254 | ||
17255 | 2007-06-19 Richard Guenther <rguenther@suse.de> | |
17256 | ||
17257 | PR middle-end/31950 | |
17258 | * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs. | |
17259 | ||
17260 | 2007-06-19 Jakub Jelinek <jakub@redhat.com> | |
17261 | ||
17262 | PR tree-optimization/32353 | |
17263 | * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL. | |
17264 | ||
17265 | 2007-06-19 Nick Clifton <nickc@redhat.com> | |
17266 | ||
17267 | * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread. | |
17268 | ||
17269 | 2007-06-18 Uros Bizjak <ubizjak@gmail.com> | |
17270 | ||
17271 | PR target/32389 | |
17272 | * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL. | |
17273 | * config/i386/i386.c (assign_386_stack_local): Assert that | |
17274 | SLOT_VIRTUAL is valid only before virtual regs are instantiated. | |
17275 | (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]: | |
17276 | Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP. | |
17277 | * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto. | |
17278 | ||
17279 | 2007-06-18 Steve Ellcey <sje@cup.hp.com> | |
17280 | ||
17281 | * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New. | |
17282 | ||
17283 | 2007-06-18 Seongbae Park <seongbae.park@gmail.com> | |
17284 | ||
17285 | PR rtl-optimization/32321 | |
17286 | * gcse.c (replace_store_insn): Update the note before | |
17287 | calling emit_insn_after. | |
17288 | ||
17289 | 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com> | |
17290 | ||
17291 | PR middle-end/32355 | |
17292 | * gcse (rest_of_handle_gcse): Add call to df_finish_pass after | |
17293 | cse_main. | |
17294 | * df-problems.c (df_note_bb_compute): Fix dumping info. | |
17295 | ||
17296 | 2007-06-18 Kazu Hirata <kazu@codesourcery.com> | |
17297 | ||
17298 | * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return | |
17299 | insn with emit_jump_insn. | |
17300 | ||
17301 | 2007-06-18 Uros Bizjak <ubizjak@gmail.com> | |
17302 | ||
17303 | PR tree-optimization/32383 | |
17304 | * targhooks.c (default_builtin_reciprocal): Add new bool argument. | |
17305 | * targhooks.h (default_builtin_reciprocal): Update prototype. | |
17306 | * target.h (struct gcc_target): Update builtin_reciprocal. | |
17307 | * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description. | |
17308 | * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements | |
17309 | where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal | |
17310 | when fndecl is in BUILT_IN_MD class. | |
17311 | (execute_convert_to_rsqrt): Ditto. | |
17312 | ||
17313 | * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool | |
17314 | argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true. | |
17315 | Convert BUILT_IN_SQRTF code only when md_fn is false. | |
17316 | ||
17317 | 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org> | |
17318 | ||
17319 | * bt-load.c (move_btr_def): Fix the order of arguments | |
17320 | to validate_replace_rtx. | |
17321 | ||
17322 | 2007-06-18 Nathan Sidwell <nathan@codesourcery.com> | |
17323 | ||
17324 | * config/m68k/m68k-devices.def: Add 54450..54455. | |
17325 | ||
17326 | 2007-06-17 Uros Bizjak <ubizjak@gmail.com> | |
17327 | ||
17328 | PR rtl-optimization/32366 | |
17329 | * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE, | |
17330 | FLOAT_EXTEND]: Prevent non-scalar modes from entering | |
17331 | significand_size. | |
17332 | ||
17333 | 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com> | |
17334 | ||
17335 | PR middle-end/32349 | |
17336 | * modulo-sched (generate_reg_moves): Added rescan parameter and if | |
17337 | this is true, rescan insn being modified. | |
17338 | (sms_schedule): Added rescan parameter. | |
17339 | (rest_of_handle_sms): Moved freeing of dominance info to before | |
17340 | getting out of cfg_layout. | |
17341 | ||
17342 | 2007-06-17 Nathan Sidwell <nathan@codesourcery.com> | |
17343 | ||
17344 | * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New. | |
17345 | * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as | |
17346 | appropriate. | |
17347 | ||
17348 | * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and | |
17349 | FL_CF_EMAC from the entry for isac. | |
17350 | ||
17351 | * config/m68k/predicates.md (const_call_operand): Adjust comment. | |
17352 | (const_sibcall_operand): New. | |
17353 | (sibcall_operand): Use it. | |
17354 | * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible. | |
17355 | (m68k_isas): ISAC does not imply FPU or EMAC. | |
17356 | (override_options): Add ISA_C logic for symbolic jump & call. | |
17357 | ||
17358 | 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr> | |
17359 | ||
17360 | * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the | |
17361 | return mode from the builtin itself. | |
17362 | (sparc_fold_builtin): Fix cast of zero constant. | |
17363 | ||
17364 | 2007-06-16 Uros Bizjak <ubizjak@gmail.com> | |
17365 | ||
17366 | * targhooks.c (default_builtin_reciprocal): New default target hook. | |
17367 | * targhooks.h (default_builtin_reciprocal): Add prototype. | |
17368 | * hooks.c (hook_tree_tree_bool_null): Remove hook. | |
17369 | * hooks.h (hook_tree_tree_bool_null): Remove prototype. | |
17370 | * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as | |
17371 | default_builtin_reciprocal. | |
17372 | ||
17373 | 2007-06-16 Uros Bizjak <ubizjak@gmail.com> | |
17374 | ||
17375 | PR middle-end/31723 | |
17376 | * hooks.c (hook_tree_tree_bool_null): New hook. | |
17377 | * hooks.h (hook_tree_tree_bool_null): Add prototype. | |
17378 | * tree-pass.h (pass_convert_to_rsqrt): Declare. | |
17379 | * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt. | |
17380 | * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b) | |
17381 | and convert it to reciprocal a*rfunc(b). | |
17382 | (execute_convert_to_rsqrt): New function. | |
17383 | (gate_convert_to_rsqrt): New function. | |
17384 | (pass_convert_to_rsqrt): New pass definition. | |
17385 | * target.h (struct gcc_target): Add builtin_reciprocal. | |
17386 | * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define. | |
17387 | (TARGET_INITIALIZER): Initialize builtin_reciprocal with | |
17388 | TARGET_BUILTIN_RECIPROCAL. | |
17389 | * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document. | |
17390 | ||
17391 | * config/i386/i386.h (TARGET_RECIP): New define. | |
17392 | * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf | |
17393 | for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and | |
17394 | flag_unsafe_math_optimizations are set, flag_trapping_math is unset | |
17395 | and not optimizing for size. | |
17396 | (*rcpsf2_sse): New insn pattern. | |
17397 | (*rsqrtsf2_sse): Ditto. | |
17398 | (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf | |
17399 | for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and | |
17400 | flag_unsafe_math_optimizations are set, flag_trapping_math is unset | |
17401 | and not optimizing for size. | |
17402 | (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf | |
17403 | for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and | |
17404 | flag_unsafe_math_optimizations are set, flag_trapping_math is unset | |
17405 | and not optimizing for size. | |
17406 | * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf | |
17407 | for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and | |
17408 | flag_unsafe_math_optimizations are set, flag_trapping_math is unset | |
17409 | and not optimizing for size. | |
17410 | (*sse_rsqrtv4sf2): Do not export. | |
17411 | (sqrtv4sf2): Ditto. | |
17412 | (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf | |
17413 | for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and | |
17414 | flag_unsafe_math_optimizations are set, flag_trapping_math is unset | |
17415 | and not optimizing for size. | |
17416 | (sqrtv4sf2): Ditto. | |
17417 | * config/i386/i386.opt (mrecip): New option. | |
17418 | * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare. | |
17419 | (ix86_emit_swsqrtsf): Ditto. | |
17420 | * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant. | |
17421 | (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New | |
17422 | builtin definition. | |
17423 | (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using | |
17424 | ix86_expand_unop1_builtin. | |
17425 | (ix86_emit_swdivsf): New function. | |
17426 | (ix86_emit_swsqrtsf): Ditto. | |
17427 | (ix86_builtin_reciprocal): New function. | |
17428 | (TARGET_BUILTIN_RECIPROCAL): Use it. | |
17429 | (ix86_vectorize_builtin_conversion): Rename from | |
17430 | ix86_builtin_conversion. | |
17431 | (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function. | |
17432 | * doc/invoke.texi (Machine Dependent Options): Add -mrecip to | |
17433 | "i386 and x86_64 Options" section. | |
17434 | (Intel 386 and AMD x86_64 Options): Document -mrecip. | |
17435 | ||
17436 | 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
17437 | Zdenek Dvorak <dvorakz@suse.cz> | |
17438 | Richard Guenther <rguenther@suse.de> | |
17439 | Kaz Kojima <kkojima@gcc.gnu.org> | |
17440 | ||
17441 | * tree-vrp.c (compare_values_warnv): Convert val2 to | |
17442 | the type of val1. | |
17443 | (extract_range_from_assert): Create | |
17444 | POINTER_PLUS_EXPR for pointer types. | |
17445 | (extract_range_from_binary_expr): Handle | |
17446 | only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR | |
17447 | for pointer types. | |
17448 | * doc/c-tree.texi (POINTER_PLUS_EXPR): Document. | |
17449 | * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle | |
17450 | POINTER_PLUS_EXPR as PLUS_EXPR. | |
17451 | (number_of_iterations_lt_to_ne): | |
17452 | For pointer types, use sizetype when | |
17453 | creating MINUS_EXPR/PLUS_EXPRs. | |
17454 | (assert_loop_rolls_lt): For pointer types, use sizetype when | |
17455 | creating MINUS_EXPR/PLUS_EXPRs. | |
17456 | (number_of_iterations_le): Likewise. | |
17457 | (expand_simple_operations): POINTER_PLUS_EXPR are simple also. | |
17458 | (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just | |
17459 | like PLUS_EXPR and MINUS_EXPR. | |
17460 | * tree-pretty-print.c (dump_generic_node): Handle | |
17461 | POINTER_PLUS_EXPR. | |
17462 | (op_prio): Likewise. | |
17463 | (op_symbol_1): Likewise. | |
17464 | * optabs.c (optab_for_tree_code): Likewise. | |
17465 | * tree-ssa-loop-manip.c (create_iv): Handle pointer base | |
17466 | specially. | |
17467 | * tree-tailcall.c (process_assignment): Mention | |
17468 | POINTER_PLUS_EXPR in a TODO comment. | |
17469 | * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or | |
17470 | MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR | |
17471 | not used with a pointer and an integer type. | |
17472 | * tree-scalar-evolution.c (add_to_evolution_1): Convert the | |
17473 | increment using chrec_convert_rhs instead of chrec_convert. | |
17474 | (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like | |
17475 | PLUS_EXPR except for the right hand side's type will be | |
17476 | sizetype. | |
17477 | (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR. | |
17478 | (fold_used_pointer_cast): Kill. | |
17479 | (pointer_offset_p): Kill. | |
17480 | (fold_used_pointer): Kill. | |
17481 | (pointer_used_p): Kill. | |
17482 | (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't | |
17483 | call fold_used_pointer. | |
17484 | (instantiate_parameters_1): Convert the increment | |
17485 | using chrec_convert_rhs instead of chrec_convert. | |
17486 | Handle POINTER_PLUS_EXPR as PLUS_EXPR. | |
17487 | * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR | |
17488 | instead of PLUS_EXPR. | |
17489 | (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of | |
17490 | PLUS_EXPR for pointers. | |
17491 | (std_gimplify_va_arg_expr): Likewise. | |
17492 | (fold_builtin_memory_op): Likewise. | |
17493 | (fold_builtin_strstr): Likewise. | |
17494 | (fold_builtin_strchr): Likewise. | |
17495 | (fold_builtin_strrchr): Likewise. | |
17496 | (fold_builtin_strpbrk): Likewise. | |
17497 | (expand_builtin_memory_chk): Likewise. | |
17498 | (fold_builtin_memory_chk): Likewise. | |
17499 | (std_expand_builtin_va_start): Use | |
17500 | sizetype for the call to make_tree and then convert | |
17501 | to the pointer type. | |
17502 | (fold_builtin_memchr): Use POINTER_PLUS_EXPR | |
17503 | instead of PLUS_EXPR for adding to a pointer. | |
17504 | (std_gimplify_va_arg_expr): Use fold_build2 for | |
17505 | the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast | |
17506 | the operands to sizetype first and then cast the BIT_AND_EXPR | |
17507 | back to the pointer type. | |
17508 | * fold-const.c (build_range_check): Handle pointer types | |
17509 | specially. | |
17510 | (extract_array_ref): Look for POINTER_PLUS_EXPR instead | |
17511 | of PLUS_EXPR's. Make sure the offset is converted to | |
17512 | sizetype. | |
17513 | (try_move_mult_to_index): Strip the NOPs from the offset. | |
17514 | Remove code argument and replace all uses with PLUS_EXPR. | |
17515 | (fold_to_nonsharp_ineq_using_bound): Handle pointer types | |
17516 | specially. Don't use a pointer type for MINUS_EXPR. | |
17517 | (fold_unary): Handle for (T1)(X op Y), | |
17518 | only p+ as that is the only as that can be handled for | |
17519 | binary operators now. | |
17520 | (fold_binary <case POINTER_PLUS_EXPR>): Add folding of | |
17521 | POINTER_PLUS_EXPR. | |
17522 | <case PLUS_EXPR>: Add folding of PTR+INT into | |
17523 | PTR p+ INT. | |
17524 | Don't call try_move_mult_to_index. | |
17525 | <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B) | |
17526 | into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into | |
17527 | (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies. | |
17528 | Don't call try_move_mult_to_index. | |
17529 | (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR. | |
17530 | (tree_expr_nonzero_p): Likewise. | |
17531 | (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead | |
17532 | of PLUS_EXPR for the complex expression folding. | |
17533 | * tree-chrec.c (chrec_fold_plus_poly_poly): If the | |
17534 | first chrec is a pointer type, then the second should | |
17535 | be sizetype and not the first's type. | |
17536 | For POINTER_PLUS_EXPR, use a different right hand side type. | |
17537 | Handle POINTER_PLUS_EXPR like PLUS_EXPR. | |
17538 | (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a | |
17539 | different right hand side type. | |
17540 | Handle POINTER_PLUS_EXPR like PLUS_EXPR. | |
17541 | (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR | |
17542 | instead of PLUS_EXPR. | |
17543 | When either operand is zero, convert the other operand. | |
17544 | (chrec_apply): Use chrec_convert_rhs | |
17545 | on the argument x instead of chrec_convert. | |
17546 | (reset_evolution_in_loop): For pointer types, the new_evol | |
17547 | should be sizetype. | |
17548 | (convert_affine_scev): For POINTER_PLUS_EXPR, use a | |
17549 | different right hand side type. | |
17550 | Handle POINTER_PLUS_EXPR like PLUS_EXPR. | |
17551 | (chrec_convert_rhs): New function. | |
17552 | (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a | |
17553 | different right hand side type. | |
17554 | Handle POINTER_PLUS_EXPR like PLUS_EXPR. | |
17555 | * tree-chrec.h (chrec_convert_rhs): New prototype. | |
17556 | (build_polynomial_chrec): For pointer types, the right hand | |
17557 | * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for | |
17558 | POINTER_PLUS_EXPR instead of PLUS_EXPR's. | |
17559 | Remove subtraction case as it is always addition now. | |
17560 | Make sure the offset is converted to sizetype. | |
17561 | (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially. | |
17562 | Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before. | |
17563 | * tree-ssa-loop-ivopts.c (determine_base_object): Abort for | |
17564 | PLUS_EXPR in pointer type. | |
17565 | Handle POINTER_PLUS_EXPR. | |
17566 | (tree_to_aff_combination): Likewise. | |
17567 | (force_expr_to_var_cost): Likewise. | |
17568 | (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR | |
17569 | instead of PLUS_EXPR for pointers. | |
17570 | * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR | |
17571 | instead of PLUS_EXPR of pointer types. | |
17572 | * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR | |
17573 | as PLUS_EXPR. | |
17574 | (check_va_list_escapes): Likewise. | |
17575 | (check_all_va_list_escapes): Likewise. | |
17576 | * dwarf2out.c (loc_descriptor_from_tree_1): | |
17577 | Handle POINT_PLUS_EXPR as a PLUS_EXPR. | |
17578 | * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR. | |
17579 | (string_constant): Likewise. | |
17580 | * tree-ssa-address.c (tree_mem_ref_addr): When adding | |
17581 | the offset to the base, use POINTER_PLUS_EXPR. | |
17582 | (add_to_parts): Convert the index to sizetype. | |
17583 | (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case. | |
17584 | * matrix-reorg.c (collect_data_for_malloc_call): Stmt | |
17585 | will now only be either INDIRECT_REF and POINTER_PLUS_EXPR. | |
17586 | Offset only holds something for PLUS_EXPR. | |
17587 | (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as | |
17588 | a PLUS_EXPR. | |
17589 | (analyze_transpose): POINTER_PLUS_EXPR will only show up now | |
17590 | and not PLUS_EXPR. | |
17591 | (analyze_accesses_for_modify_stmt): Likewise. | |
17592 | Remove comment about the type being integral type as it is | |
17593 | wrong now. | |
17594 | (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as | |
17595 | PLUS_EXPR. | |
17596 | (transform_access_sites): POINTER_PLUS_EXPR will only show up now | |
17597 | and not PLUS_EXPR. | |
17598 | Correct the type which the artimentic is done in (is now | |
17599 | sizetype). | |
17600 | Reindent one loop. | |
17601 | * tree-data-ref.c (split_constant_offset): Handle | |
17602 | POINTER_PLUS_EXPR | |
17603 | * tree-affine.c (tree_to_aff_combination): Likewise. | |
17604 | * c-typeck.c (build_unary_op): For pointers create the increment | |
17605 | as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR | |
17606 | for pointers. | |
17607 | * gimplify.c (gimplify_self_mod_expr): Create a | |
17608 | POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. | |
17609 | (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR. | |
17610 | * tree.def (POINTER_PLUS_EXPR): New tree code. | |
17611 | * tree-predcom.c (ref_at_iteration): If we have a pointer | |
17612 | type do the multiplication in sizetype. | |
17613 | * tree-mudflap.c (mf_xform_derefs_1): Create a | |
17614 | POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. | |
17615 | * tree-ssa-forwprop.c | |
17616 | (forward_propagate_addr_into_variable_array_index): | |
17617 | Don't expect there to be a cast for the index as that | |
17618 | does not exist anymore. | |
17619 | (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR | |
17620 | instead of PLUS_EXPR. | |
17621 | Don't check for the first operand of the POINTER_PLUS_EXPR | |
17622 | was the index as it cannot be. | |
17623 | Call forward_propagate_addr_into_variable_array_index with | |
17624 | the SSA_NAME instead of the statement. | |
17625 | * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR. | |
17626 | (compare_constant): Likewise. | |
17627 | (copy_constant): Likewise. | |
17628 | (compute_reloc_for_constant): Likewise. | |
17629 | (output_addressed_constants): Likewise. | |
17630 | (initializer_constant_valid_p): Likewise. | |
17631 | * tree-ssa.c (tree_ssa_useless_type_conversion_1): | |
17632 | Convert the MIN/MAX of the inner type to the outer | |
17633 | type before comparing them. | |
17634 | * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle | |
17635 | POINTER_PLUS_EXPR instead of PLUS_EXPR. | |
17636 | (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead | |
17637 | of PLUS_EXPR for pointers. | |
17638 | * tree-inline.c (estimate_num_insns_1): Handle | |
17639 | POINTER_PLUS_EXPR. | |
17640 | * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): | |
17641 | Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. | |
17642 | (bump_vector_ptr): Create a POINTER_PLUS_EXPR | |
17643 | instead of PLUS_EXPR for the pointer increment statement. | |
17644 | (vect_update_ivs_after_vectorizer): For pointer types, create | |
17645 | POINTER_PLUS_EXPR instead of PLUS_EXPR and also create | |
17646 | MULT_EXPR in sizetype. | |
17647 | (vect_gen_niters_for_prolog_loop): Add a cast when creating | |
17648 | byte_misalign. | |
17649 | * tree-object-size.c (plus_expr_object_size): Handle | |
17650 | POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra | |
17651 | code which is trying to figure out which side is a pointer and | |
17652 | is the index. | |
17653 | (check_for_plus_in_loops_1): Likewise. | |
17654 | (check_for_plus_in_loops): Likewise. | |
17655 | * c-common.c (pointer_int_sum): Create a | |
17656 | POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. | |
17657 | * tree-ssa-structalias.c (handle_ptr_arith): Handle | |
17658 | only POINTER_PLUS_EXPR. Removing all the extra | |
17659 | code which is trying to figure out which side is a pointer and | |
17660 | is the index. | |
17661 | * tree-cfg.c (verify_expr): Add extra checking for pointers and | |
17662 | PLUS_EXPR and MINUS_EXPR. | |
17663 | Also add checking to make sure the operands of POINTER_PLUS_EXPR | |
17664 | are correct. | |
17665 | * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype | |
17666 | with make_tree, instead of a pointer type. | |
17667 | * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR | |
17668 | for pointers instead of PLUS_EXPR. | |
17669 | (s390_gimplify_va_arg): Likewise. | |
17670 | * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR | |
17671 | instead of PLUS_EXPR when doing addition on pointer | |
17672 | types. Use sizetype for the second operand. | |
17673 | (spu_gimplify_va_arg_expr): Likewise. | |
17674 | * config/sparc/sparc.c (sparc_gimplify_va_arg): Use | |
17675 | POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was | |
17676 | a pointer. Don't create a BIT_AND_EXPR for pointer types. | |
17677 | * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR | |
17678 | for the pointer addition and also use size_int/sizetype | |
17679 | for the offset. | |
17680 | (ix86_gimplify_va_arg): Likewise. | |
17681 | Perform BIT_AND_EXPR on sizetype arguments. | |
17682 | * config/sh/sh.c (sh_va_start): Call make_tree with sizetype | |
17683 | and convert its result to a pointer type. Use POINTER_PLUS_EXPR | |
17684 | for the pointer additions and also use size_int for the offsets. | |
17685 | (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer | |
17686 | additions and also use size_int for the offsets. Perform | |
17687 | BIT_AND_EXPR on sizetype arguments. | |
17688 | * config/ia64/ia64.c (ia64_gimplify_va_arg): Use | |
17689 | POINTER_PLUS_EXPR for pointers and create the | |
17690 | BIT_AND_EXPR in sizetype. | |
17691 | * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR | |
17692 | instead of PLUS_EXPR for pointer addition. | |
17693 | (rs6000_va_start): Likewise. | |
17694 | Also use sizetype for the offset. | |
17695 | * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR | |
17696 | as PLUS_EXPR/MINUS_EXPR. | |
17697 | (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or | |
17698 | PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR. | |
17699 | Don't use BIT_AND_EXPR on a pointer type, convert the | |
17700 | expression to sizetype first. | |
17701 | * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR | |
17702 | for pointers. | |
17703 | (mips_gimplify_va_arg_expr): Likewise. | |
17704 | Don't create BIT_AND_EXPR in a pointer type. | |
17705 | ||
17706 | 2007-06-15 Eric Christopher <echristo@apple.com> | |
17707 | ||
17708 | * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc. | |
17709 | (x86_64-*-darwin*): Ditto. | |
17710 | * config/i386/darwin.h (CRTEND_SPEC): New. Add support | |
17711 | for above. | |
17712 | ||
17713 | 2007-06-15 Matthew Wilcox <matthew@wil.cx> | |
17714 | ||
17715 | * doc/extend.texi: Document behavior of __attribute__((aligned)) | |
17716 | on typedefs. | |
17717 | ||
17718 | 2007-06-15 Mark Mitchell <mark@codesourcery.com> | |
17719 | ||
17720 | * rtlanal.c (note_stores): Improve documentation. | |
17721 | ||
17722 | 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com> | |
17723 | ||
17724 | * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL, | |
17725 | LOCAL_LABEL_PREFIX): Delete. | |
17726 | * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete. | |
17727 | (bfin_internal_label): Delete. | |
17728 | ||
17729 | 2007-06-15 Uros Bizjak <ubizjak@gmail.com> | |
17730 | ||
17731 | * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3, | |
17732 | define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128, | |
17733 | otherwise define to LIBGCC2_TF_CEXT. | |
17734 | * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define. | |
17735 | (LIBGCC_TF_CEXT): Ditto. | |
17736 | (TF_SIZE): Ditto. | |
17737 | ||
17738 | 2007-06-14 Seongbae Park <seongbae.park@gmail.com> | |
17739 | ||
17740 | PR rtl-optimization/32339 | |
17741 | * df-scan.c (df_uses_record): Don't modify flags but just add to | |
17742 | it for df_ref_record. | |
17743 | ||
17744 | 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
17745 | ||
17746 | * tree-mudflap.c: Fix whitespace issues. | |
17747 | ||
17748 | 2007-06-15 Kazu Hirata <kazu@codesourcery.com> | |
17749 | ||
17750 | * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove. | |
17751 | ||
17752 | 2007-06-14 Eric Christopher <echristo@apple.com> | |
17753 | ||
17754 | * config/i386/sse.md (movdi_to_sse): Rewrite body. | |
17755 | (movv4sf): Use gcc_unreachable instead of abort. | |
17756 | ||
17757 | 2007-06-14 Uros Bizjak <ubizjak@gmail.com> | |
17758 | ||
17759 | PR target/32268 | |
17760 | * config/i386/sfp-machine.h (CMPtype): New define. | |
17761 | (mach stubs): Use CMPtype instead of int as a return type. | |
17762 | ||
17763 | 2007-06-14 Uros Bizjak <ubizjak@gmail.com> | |
17764 | ||
17765 | * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c, | |
17766 | config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c, | |
17767 | config/soft-fp/gesf2.c, config/soft-fp/getf2.c, | |
17768 | config/soft-fp/ledf2.c, config/soft-fp/lesf2.c, | |
17769 | config/soft-fp/letf2.c, config/soft-fp/unorddf2.c, | |
17770 | config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c, | |
17771 | config/soft-fp/soft-fp.h: Update from glibc CVS. | |
17772 | ||
17773 | 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com> | |
17774 | ||
17775 | * config/bfin/uclinux.h (MFWRAP_SPEC): New. | |
17776 | ||
17777 | 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk> | |
17778 | ||
17779 | PR target/32341 | |
17780 | * config/v850/v850.c: Include dataflow header file. | |
17781 | (substitute_ep_register): Fix typo. | |
17782 | ||
17783 | 2007-06-14 Paolo Bonzini <bonzini@gnu.org> | |
17784 | ||
17785 | * configure.ac: Fix earlier checkin. | |
17786 | * configure: Regenerated. | |
17787 | ||
17788 | 2007-06-14 Paolo Bonzini <bonzini@gnu.org> | |
17789 | ||
17790 | * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove. | |
17791 | * aclocal.m4: Regenerate. | |
17792 | * configure.ac: Use ACX_PROG_CC_WARNING_OPTS, | |
17793 | ACX_PROG_CC_WARNINGS_ARE_ERRORS, | |
17794 | ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER. | |
17795 | * configure: Regenerate. | |
17796 | * Makefile.in (LOOSE_WARN): Subst loose_warn. | |
17797 | ||
17798 | * Makefile.in (quickstrap): Build libgcc too. | |
17799 | ||
17800 | 2007-06-14 Paolo Bonzini <bonzini@gnu.org> | |
17801 | ||
17802 | * configure.ac: Add --enable-checking=df. Explicitly mention that | |
17803 | the variables are initialized as for "release". | |
17804 | * df-core.c: Use it. | |
17805 | * configure: Regenerate. | |
17806 | * config.in: Regenerate. | |
17807 | ||
17808 | 2007-06-14 Bob Wilson <bob.wilson@acm.org> | |
17809 | ||
17810 | * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use | |
17811 | validate_replace_rtx instead of replace_rtx. | |
17812 | (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx. | |
17813 | ||
17814 | 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net> | |
17815 | ||
17816 | * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define. | |
17817 | (DWARF2_UNWIND_INFO): Override default if configured with | |
17818 | SJLJ EH disabled. | |
17819 | * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o. | |
17820 | (ENDFILE_SPEC): Add crtend.o. | |
17821 | * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o. | |
17822 | (ENDFILE_SPEC): Add crtend.o. | |
17823 | (TARGET_USE_JCR_SECTION): Define. | |
17824 | (MD_UNWIND_SUPPORT): Define for 32-bit target. | |
17825 | ||
17826 | * config/i386/cygming-crtbegin.c: New file. | |
17827 | * config/i386/cygming-crtend.c: New file. | |
17828 | ||
17829 | 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com> | |
17830 | ||
17831 | * config/i386/w32-unwind.h: New file. | |
17832 | ||
17833 | 2007-06-13 Eric Christopher <echristo@apple.com> | |
17834 | ||
17835 | * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let | |
17836 | the user set a value below STACK_BOUNDARY. | |
17837 | ||
17838 | 2007-06-13 Thiemo Seufer <ths@networkno.de> | |
17839 | ||
17840 | * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always | |
17841 | imply -lpthread for -pthread. | |
17842 | ||
17843 | 2007-06-13 Kazu Hirata <kazu@codesourcery.com> | |
17844 | ||
17845 | * basic-block.h: Remove the prototype for | |
17846 | free_basic_block_vars. | |
17847 | * cfglayout.h: Remove the prototype for | |
17848 | insn_locators_initialize. | |
17849 | * tree.h: Remove the prototype for emit_line_note. | |
17850 | ||
17851 | * tree-ssa-pre.c (mergephitemp): Remove. | |
17852 | (init_pre): Don't use mergephitemp. | |
17853 | ||
17854 | 2007-06-13 Eric Christopher <echristo@apple.com> | |
17855 | ||
17856 | * config/i386/i386.c (override_options): If we've specified | |
17857 | an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs. | |
17858 | ||
17859 | 2007-06-13 Bob Wilson <bob.wilson@acm.org> | |
17860 | ||
17861 | * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM | |
17862 | is defined. | |
17863 | ||
17864 | 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com> | |
17865 | ||
17866 | * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem. | |
17867 | * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant. | |
17868 | (eh_store_handler): New pattern. | |
17869 | (eh_return): Emit it instead of a plain move. | |
17870 | ||
17871 | 2007-06-13 Uros Bizjak <ubizjak@gmail.com> | |
17872 | ||
17873 | * config/i386/i386.c (ix86_init_mmx_sse_builtins) | |
17874 | [__builtin_infq, __builtin_fabsq]: Define usign def_builtin. | |
17875 | [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using | |
17876 | def_builtin_const. | |
17877 | ||
17878 | 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com> | |
17879 | ||
17880 | * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables. | |
17881 | (find_next_insn_start, find_load): New functions. | |
17882 | (bfin_reorg): Use them to deal with the fact that parallel insns are | |
17883 | no longer represented as a SEQUENCE. | |
17884 | ||
17885 | 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr> | |
17886 | ||
17887 | * config/sparc/sparc.c (sparc_override_options): Initialize | |
17888 | fpu mask correctly. | |
17889 | ||
17890 | 2007-06-13 Dave Korn <dave.korn@artimi.com> | |
17891 | ||
17892 | * config/i386/i386.c (ix86_eax_live_at_start_p): Use df_get_live_out. | |
17893 | ||
17894 | 2007-06-13 Kazu Hirata <kazu@codesourcery.com> | |
17895 | ||
17896 | * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S, | |
17897 | config/sh/divcost-analysis, dbgcnt.def, df-core.c, | |
17898 | df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c, | |
17899 | tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c, | |
17900 | tree-vect-transform.c: Fix comment typos. Follow spelling | |
17901 | conventions. | |
17902 | ||
17903 | 2007-06-12 Seongbae Park <seongbae.park@gmail.com> | |
17904 | ||
17905 | * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer | |
17906 | to the exit block use set. | |
17907 | (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". | |
17908 | * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode. | |
17909 | * config/sparc/sparc.c (sparc_check_64): Check df != NULL. | |
17910 | ||
17911 | 2007-06-12 Seongbae Park <seongbae.park@gmail.com> | |
17912 | ||
17913 | * opts.c (common_handle_option): Handle new option -fdbg-cnt-list. | |
17914 | * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value | |
17915 | to indicate an error. | |
17916 | (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): | |
17917 | New functions. | |
17918 | (dbg_cnt_process_opt): Print an error on a bad argument. | |
17919 | * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration. | |
17920 | * common.opt (-fdbg-cnt-list): New. | |
17921 | * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New. | |
17922 | ||
17923 | 2007-06-12 Eric Botcazou <ebotcazou@adacore.com> | |
17924 | ||
17925 | * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything | |
17926 | flag on ref-all pointers. | |
17927 | ||
17928 | 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
17929 | ||
17930 | PR middle-end/31579 | |
17931 | * expr.c (expand_expr_addr_expr_1): Call expand_expr | |
17932 | for the offset with the modifier as EXPAND_INITIALIZER | |
17933 | if the modifier is EXPAND_INITIALIZER. | |
17934 | (expand_expr_real_1 <case INTEGER_CST>): Don't force to | |
17935 | a register if we had an overflow. | |
17936 | ||
17937 | 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
17938 | ||
17939 | * real.c (real_isfinite): New. | |
17940 | (real_sqrt): Use it. | |
17941 | * real.h (real_isfinite): New. | |
17942 | * builtins.c: Use it. | |
17943 | ||
17944 | 2007-06-12 Ian Lance Taylor <iant@google.com> | |
17945 | Daniel Berlin <dberlin@dberlin.org> | |
17946 | ||
17947 | PR libstdc++/29286 | |
17948 | * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR. | |
17949 | * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define. | |
17950 | (CHANGE_DYNAMIC_TYPE_LOCATION): Define. | |
17951 | (DECL_NO_TBAA_P): Define. | |
17952 | (struct tree_decl_common): Add no_tbaa_flag field. | |
17953 | * tree-ssa-structalias.c (struct variable_info): Add | |
17954 | no_tbaa_pruning field. | |
17955 | (new_var_info): Initialize no_tbaa_pruning field. | |
17956 | (unify_nodes): Copy no_tbaa_pruning field. | |
17957 | (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR. | |
17958 | (dump_solution_for_var): Print no_tbaa_pruning flag. | |
17959 | (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all | |
17960 | callers. | |
17961 | (compute_tbaa_pruning): New static function. | |
17962 | (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes. | |
17963 | Call compute_tbaa_pruning. | |
17964 | * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers. | |
17965 | * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR. | |
17966 | * gimple-low.c (lower_stmt): Likewise. | |
17967 | * tree-gimple.c (is_gimple_stmt): Likewise. | |
17968 | * tree-ssa-operands.c (get_expr_operands): Likewise. | |
17969 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. | |
17970 | * tree-inline.c (estimate_num_insns_1): Likewise. | |
17971 | (copy_result_decl_to_var): Likewise. | |
17972 | * expr.c (expand_expr_real_1): Likewise. | |
17973 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
17974 | * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag. | |
17975 | * omp-low.c (omp_copy_decl_2): Likewise. | |
17976 | * print-tree.c (print_node): Print DECL_NO_TBAA_P flag. | |
17977 | * doc/c-tree.texi (Expression trees): Document | |
17978 | CHANGE_DYNAMIC_TYPE_EXPR. | |
17979 | ||
17980 | 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
17981 | ||
17982 | * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation | |
17983 | with !HONOR_NANS and !HONOR_INFINITIES. | |
17984 | * simplify-rtx.c (simplify_binary_operation_1): Likewise. | |
17985 | ||
17986 | 2007-06-12 Tristan Gingold <gingold@adacore.com> | |
17987 | ||
17988 | * gcov.c: Comments updated. | |
17989 | (source_info): Add file_time field. | |
17990 | (source_index): New variable. | |
17991 | (mutiple_files): New variable. | |
17992 | (generate_results): New function extracted from process_file. | |
17993 | (process_file): Save and restore chain of functions, generate | |
17994 | results and free structures only if not merging results. | |
17995 | (release_structures): File names are now freed in create_file_names | |
17996 | (create_file_names): Free previous file names. | |
17997 | (find_source): File date is now read here and modifications in | |
17998 | source files is checked here. | |
17999 | (read_graph_file): Only reverse order of functions for the current | |
18000 | object file. | |
18001 | (make_gcov_file_name): Do not generate long names if input_name is | |
18002 | NULL. | |
18003 | (output_lines): If merging results do not display graph, data and | |
18004 | runs informations. | |
18005 | Checking source file modification is done in find_source. | |
18006 | ||
18007 | * doc/gcov.texi: Append an s to sourcefile. | |
18008 | ||
18009 | 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com> | |
18010 | ||
18011 | * config/bfin/bfin.md (UNSPEC_NOP): New constant. | |
18012 | (forced_nop): New pattern. | |
18013 | * config/bfin/bfin.c: Include "df.h". | |
18014 | (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live. | |
18015 | (bfin_discover_loop): Use df_get_live_in instead of | |
18016 | global_live_at_start. | |
18017 | (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call | |
18018 | df_analyze when done. | |
18019 | (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on | |
18020 | the insns. Use QImode for the final insn in a bundle. Call | |
18021 | df_insn_rescan on generated NOPs; use gen_forced_nop instead of | |
18022 | gen_nop. | |
18023 | (reorder_var_tracking_notes): New function. | |
18024 | (bfin_reorg): Pass no argument to split_all_insns. Don't call | |
18025 | update_life_info. Call df_analyze after scheduling and bundle | |
18026 | generation. Call reorder_var_tracking_notes if generating these | |
18027 | notes. Call df_finish_pass at the end. | |
18028 | ||
18029 | 2007-06-12 Dirk Mueller <dmueller@suse.de> | |
18030 | ||
18031 | * optabs.c (debug_optab_libfuncs): fix gcc_assert to | |
18032 | a comparison, not an assignment. | |
18033 | ||
18034 | 2007-06-12 Olivier Hainque <hainque@adacore.com> | |
18035 | ||
18036 | * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR. | |
18037 | Request walking the subtrees only, leaving the current is_lhs/val_only | |
18038 | untouched. | |
18039 | (convert_non_local_reference): Likewise. | |
18040 | ||
18041 | 2007-06-12 Nathan Sidwell <nathan@codesourcery.com> | |
18042 | ||
18043 | * config/m68k/m68k-devices.def (52221, 52223, 5253): New. | |
18044 | ||
18045 | 2007-06-12 Richard Guenther <rguenther@suse.de> | |
18046 | ||
18047 | PR tree-optimization/15353 | |
18048 | PR tree-optimization/31657 | |
18049 | * passes.c (init_optimization_passes): Add pass_tree_ifcombine. | |
18050 | * timevar.def: Add TV_TREE_IFCOMBINE. | |
18051 | * tree-pass.h (pass_tree_ifcombine): Declare. | |
18052 | * tree-ssa-ifcombine.c: New file. | |
18053 | * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export. | |
18054 | * tree-flow.h (blocks_in_phiopt_order): Declare. | |
18055 | * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o. | |
18056 | (tree-ssa-ifcombine.o): New dependencies. | |
18057 | ||
18058 | 2007-06-12 Uros Bizjak <ubizjak@gmail.com> | |
18059 | ||
18060 | PR rtl-optimization/32293 | |
18061 | * combine.c (simplify_if_then_else): Truncate return from | |
18062 | nonzero_bits() to correct mode. | |
18063 | ||
18064 | 2007-06-12 Uros Bizjak <ubizjak@gmail.com> | |
18065 | ||
18066 | * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c) | |
18067 | into a*cbrt(c/b) if flag_unsafe_math_optimizations is set. | |
18068 | ||
18069 | 2007-06-11 Diego Novillo <dnovillo@google.com> | |
18070 | ||
18071 | * Makefile.in (reload1.o-warn): Remove. | |
18072 | ||
18073 | 2007-06-11 Seongbae Park <seongbae.park@gmail.com> | |
18074 | ||
18075 | * combine.c (subst): Use reg_overlap_mentioned_p | |
18076 | instead of comparing register numbers directly. | |
18077 | ||
18078 | 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com> | |
18079 | ||
18080 | * reload1.c (mark_home_live_1): Use the mode parameter. | |
18081 | ||
18082 | 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com> | |
18083 | ||
18084 | * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all, | |
18085 | df_process_deferred_rescans, df_notes_rescan): Fixed spelling of | |
18086 | word "deferred". | |
18087 | * df-core.c: Ditto. | |
18088 | ||
18089 | 2007-06-11 Daniel Berlin <dberlin@dberlin.org> | |
18090 | ||
18091 | * Merge dataflow-branch into mainline (see ChangeLog.dataflow) | |
18092 | ||
18093 | 2007-06-11 Uros Bizjak <ubizjak@gmail.com> | |
18094 | ||
18095 | * config/i386/i386.md ("*movtf_internal): Penalize moves to and | |
18096 | from integer registers. | |
18097 | (FP mode splitters): Handle TFmode. | |
18098 | ||
18099 | 2007-06-11 Eric Botcazou <ebotcazou@adacore.com> | |
18100 | ||
18101 | * tree-ssa-structalias.c (find_what_p_points_to): Return false | |
18102 | for ref-all pointers that point-to anything. | |
18103 | ||
18104 | 2007-06-11 Joseph Myers <joseph@codesourcery.com> | |
18105 | ||
18106 | * config/arm/arm.c (arm_output_dwarf_dtprel, | |
18107 | TARGET_ASM_OUTPUT_DWARF_DTPREL): New. | |
18108 | ||
18109 | 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com> | |
18110 | ||
18111 | * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn, | |
18112 | movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant | |
18113 | to memory moves. | |
18114 | ||
719bb4e3 | 18115 | 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com> |
f13d199c RB |
18116 | |
18117 | * tree.c (signed_or_unsigned_type_for): New. | |
18118 | (unsigned_type_for): Use signed_or_unsigned_type_for. | |
18119 | (signed_type_for): Use signed_or_unsigned_type_for. | |
18120 | * tree.h (signed_or_unsigned_type_for): New. | |
18121 | (get_signed_or_unsigned_type): Remove. | |
18122 | * fold-const.c (fold_negate_expr): Use signed_type_for instead of | |
18123 | lang_hooks.types.signed_type | |
18124 | (size_diffop): Likewise. | |
18125 | (all_ones_mask_p): Likewise. | |
18126 | (build_range_check): Likewise. | |
18127 | (fold_cond_expr_with_comparison): Likewise. | |
18128 | (fold_cond_expr_with_comparison): Likewise. | |
18129 | (unextend): Likewise. | |
18130 | (extract_muldiv_1): Likewise. | |
18131 | (fold_single_bit_test_into_sign_test): Likewise. | |
18132 | (fold_binary): Likewise. | |
18133 | (fold_ternary): Likewise. | |
18134 | (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for | |
18135 | instead of get_signed_or_unsigned_type. | |
18136 | * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove. | |
18137 | (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. | |
18138 | * expr.c (signed_or_unsigned_type_for): Use | |
18139 | signed_or_unsigned_type_for instead of get_signed_or_unsigned_type. | |
18140 | * langhooks.c (get_signed_or_unsigned_type): Remove. | |
18141 | (lhd_signed_or_unsigned_type): Remove. | |
18142 | * langhooks.h (lang_hooks_for_types): Remove signed_type and | |
18143 | signed_or_unsigned_type. | |
18144 | (lhd_signed_or_unsigned_type): Remove. | |
18145 | * expmed.c (make_tree): Use signed_type_for instead of | |
18146 | lang_hooks.types.signed_type. | |
18147 | * c-common.c (same_scalar_type_ignoring_signedness): Use | |
18148 | c_common_signed_type instead of lang_hooks.types.signed_type. | |
18149 | (c_common_unsigned_type): New. | |
18150 | (c_common_signed_type): Just call c_common_signed_or_unsigned_type. | |
18151 | (shorten_compare): Use c_common_unsigned_type instead of | |
18152 | c_common_signed_or_unsigned_type. | |
18153 | (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of | |
18154 | unsigned_type_for. | |
18155 | * convert.c (convert_to_integer): Use signed_type_for instead of | |
18156 | lang_hooks.types.signed_type. | |
18157 | * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. | |
18158 | (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and | |
18159 | LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE. | |
18160 | * c-format.c (check_format_types): Use c_common_unsigned_type | |
18161 | instead of unsigned_type_for. | |
18162 | * c-decl.c (groakdeclarator): Likewise. | |
18163 | * c-typeck.c (convert_for_assignment): Likewise. | |
18164 | * c-common.h (c_common_unsigned_type): New. | |
18165 | ||
18166 | 2007-06-11 Uros Bizjak <ubizjak@gmail.com> | |
18167 | ||
18168 | PR target/32280 | |
18169 | * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ... | |
18170 | * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here. | |
18171 | ||
18172 | 2007-06-11 Uros Bizjak <ubizjak@gmail.com> | |
18173 | ||
18174 | PR middle-end/32279 | |
18175 | * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c) | |
18176 | into a*sqrt(c/b) if flag_unsafe_math_optimizations is set. | |
18177 | ||
18178 | 2007-06-10 Jan Sjodin <jan.sjodin@amd.com> | |
18179 | Sebastian Pop <sebpop@gmail.com> | |
18180 | ||
18181 | * lambda-code.c (remove_iv): New. | |
18182 | (lambda_loopnest_to_gcc_loopnest): Use remove_iv. | |
18183 | ||
18184 | 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz> | |
18185 | ||
18186 | * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL. | |
18187 | * tree-predcom.c (mark_virtual_ops_for_renaming): Exported. | |
18188 | * tree-ssa-loop-prefetch.c: Include optabs.h. | |
18189 | (FENCE_FOLLOWING_MOVNT): New macro. | |
18190 | (struct mem_ref): Add independent_p and storent_p fields. | |
18191 | (record_ref): Initalize the new fields. | |
18192 | (gather_memory_references_ref): Return true if the reference | |
18193 | could be analysed. | |
18194 | (gather_memory_references): Check whether all memory accesses | |
18195 | in loop were recorded. | |
18196 | (should_issue_prefetch_p): Return false for nontemporal stores. | |
18197 | (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop, | |
18198 | may_use_storent_in_loop_p, mark_nontemporal_stores): New functions. | |
18199 | (determine_loop_nest_reuse): Detect independent memory references. | |
18200 | (loop_prefetch_arrays): Call mark_nontemporal_stores. | |
18201 | * tree-flow.h (mark_virtual_ops_for_renaming): Declare. | |
18202 | * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency. | |
18203 | * config/i386/i386.h (x86_mfence): Declare. | |
18204 | (FENCE_FOLLOWING_MOVNT): Return x86_mfence. | |
18205 | * config/i386/i386.c (x86_mfence): New variable. | |
18206 | (ix86_init_mmx_sse_builtins): Initialize x86_mfence. | |
18207 | ||
18208 | * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores. | |
18209 | * optabs.c (init_optabs): Initialize storent_optab. | |
18210 | * optabs.h (enum optab_index): Add OTI_storent. | |
18211 | (storent_optab): Declare. | |
18212 | * genopinit.c (optabs): Add initialization for storent_optab. | |
18213 | * tree.h (MOVE_NONTEMPORAL): New macro. | |
18214 | * expr.c (expand_assignment, store_expr, store_constructor_field, | |
18215 | store_constructor, store_field, expand_expr_real_1): Propagate | |
18216 | nontemporality of the expanded store. | |
18217 | (emit_storent_insn): New function. | |
18218 | * expr.h (expand_assignment, store_expr): Declaration changed. | |
18219 | * function.c (assign_parm_setup_reg): Pass false as nontemporality | |
18220 | to expand_assignment. | |
18221 | * stmt.c (expand_asm_expr): Ditto. | |
18222 | * calls.c (initialize_argument_information): Pass false as | |
18223 | nontemporality to store_expr. | |
18224 | * config/i386/sse.md (storentv4sf, storentv2df, storentv2di, | |
18225 | storentsi): New. | |
18226 | ||
18227 | 2007-06-09 Daniel Berlin <dberlin@dberlin.org> | |
18228 | ||
18229 | * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd | |
18230 | parameter, use it. | |
18231 | (find_what_p_points_to): Pass new parameter to set_uids_in_ptset. | |
18232 | ||
18233 | 2007-06-09 Daniel Berlin <dberlin@dberlin.org> | |
18234 | ||
18235 | * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b, | |
18236 | and allow DECL_P here. | |
18237 | ||
18238 | 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz> | |
18239 | ||
18240 | * tree-scalar-evolution.c (follow_ssa_edge_in_rhs, | |
18241 | follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise | |
18242 | track of the size of the expression. | |
18243 | * cfghooks.c (merge_blocks): Remove block from loops structure only | |
18244 | after call of the merge_blocks hook. | |
18245 | ||
18246 | 2007-06-09 Tom Tromey <tromey@redhat.com> | |
18247 | ||
18248 | * c-decl.c (grokdeclarator): Added 'deprecated_state' argument. | |
18249 | (deprecated_state): Removed. | |
18250 | (start_decl): Update. | |
18251 | (enum deprecated_states): Moved earlier. | |
18252 | (groktypename): Update. | |
18253 | (push_parm_decl): Likewise. | |
18254 | (grokfield): Likewise. | |
18255 | (start_function): Likewise. | |
18256 | ||
18257 | 2007-06-09 Ian Lance Taylor <iant@google.com> | |
18258 | ||
18259 | PR tree-optimization/32169 | |
18260 | * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and | |
18261 | CONVERT_EXPR, check whether min and max both converted to an | |
18262 | overflow infinity representation. | |
18263 | ||
18264 | 2007-06-08 Eric Botcazou <ebotcazou@adacore.com> | |
18265 | ||
18266 | * reload1.c (fixup_abnormal_edges): Clear bb field for insns | |
18267 | not inserted on the edge. | |
18268 | ||
18269 | 2007-06-08 Bob Wilson <bob.wilson@acm.org> | |
18270 | ||
18271 | * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide | |
18272 | instructions if they are supported. | |
18273 | (__divsi3, __umodsi3, __modsi3): Likewise. | |
18274 | (__ashldi3, __ashrdi3, __lshrdi3): New. | |
18275 | * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions. | |
18276 | ||
18277 | 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com> | |
18278 | Tony Linthicum <tony.linthicum@amd.com> | |
18279 | ||
18280 | * doc/invoke.texi: Add fvect-cost-model flag. | |
18281 | * common.opt (fvect-cost-model): New flag. | |
18282 | * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside | |
18283 | cost fields in stmt_vec_info struct for STMT. | |
18284 | * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost | |
18285 | fields in stmt_vec_info struct and access functions for the same. | |
18286 | (TARG_COND_BRANCH_COST): Define cost of conditional branch. | |
18287 | (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding | |
18288 | load, store and vector to scalar operation. | |
18289 | (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation. | |
18290 | (TARG_VEC_LOAD_COST): Define cost of aligned vector load. | |
18291 | (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load. | |
18292 | (TARG_VEC_STORE_COST): Define cost of vector store. | |
18293 | (vect_estimate_min_profitable_iters): Define new function. | |
18294 | * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time | |
18295 | check to evaluate if loop iterations are less than minimum profitable | |
18296 | iterations determined by cost model or minimum vect loop bound defined | |
18297 | by user, whichever is more conservative. | |
18298 | * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a | |
18299 | run-time check to evaluate if loop iterations are less than minimum | |
18300 | profitable iterations determined by cost model or minimum vect loop | |
18301 | bound defined by user, whichever is more conservative. | |
18302 | (vect_estimate_min_profitable_iterations): New function to estimate | |
18303 | mimimimum iterartions required for vector version of loop to be | |
18304 | profitable over scalar version. | |
18305 | (vect_model_reduction_cost): New function. | |
18306 | (vect_model_induction_cost): New function. | |
18307 | (vect_model_simple_cost): New function. | |
18308 | (vect_cost_strided_group_size): New function. | |
18309 | (vect_model_store_cost): New function. | |
18310 | (vect_model_load_cost): New function. | |
18311 | (vectorizable_reduction): Call vect_model_reduction_cost during | |
18312 | analysis phase. | |
18313 | (vectorizable_induction): Call vect_model_induction_cost during | |
18314 | analysis phase. | |
18315 | (vectorizable_load): Call vect_model_load_cost during analysis phase. | |
18316 | (vectorizable_store): Call vect_model_store_cost during analysis phase. | |
18317 | (vectorizable_call, vectorizable_assignment, vectorizable_operation, | |
18318 | vectorizable_promotion, vectorizable_demotion): Call | |
18319 | vect_model_simple_cost during analysis phase. | |
18320 | ||
18321 | 2007-06-08 Simon Baldwin <simonb@google.com> | |
18322 | ||
18323 | * reg-stack.c (get_true_reg): Readability change. Moved default case | |
18324 | label into direct switch statement scope. | |
18325 | ||
18326 | 2007-06-08 Simon Baldwin <simonb@google.com> | |
18327 | ||
18328 | * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment | |
18329 | in gcc_assert() with '==' comparison. | |
18330 | ||
18331 | 2007-06-08 Uros Bizjak <ubizjak@gmail.com> | |
18332 | ||
18333 | * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and | |
18334 | TARGET_ABM handling of x86_popcnt variable. | |
18335 | ||
18336 | 2007-06-08 Uros Bizjak <ubizjak@gmail.com> | |
18337 | ||
18338 | * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq, | |
18339 | __builtin_copysignq and __builtin_infq built-in functions. | |
18340 | ||
18341 | 2007-06-08 Uros Bizjak <ubizjak@gmail.com> | |
18342 | ||
18343 | * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in | |
18344 | SSE4.2 section. Correct built-in function names in SSE4A section. | |
18345 | ||
18346 | 2007-06-08 Uros Bizjak <ubizjak@gmail.com> | |
18347 | ||
18348 | PR tree-optimization/32243 | |
18349 | * tree-vect-transform.c (vectorizable_type_promotion): Move check | |
18350 | for ncopies after ratio check between nunits_out and nunits_in. | |
18351 | (vectorizable_type_demotion): Remove single-use variable "scalar_type". | |
18352 | ||
18353 | 2007-06-08 Dorit Nuzman <dorit@il.ibm.com> | |
18354 | ||
18355 | PR tree-optimization/32224 | |
18356 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail | |
18357 | vectorization upon a non GIMPLE_MODIFY_STMT. | |
18358 | ||
18359 | 2007-06-08 Christian Bruel <christian.bruel@st.com> | |
18360 | ||
18361 | PR target/29953 | |
18362 | * config/sh/sh.md (doloop_end): New pattern and splitter. | |
18363 | * loop-iv.c (simple_rhs_p): Check for hardware registers. | |
18364 | ||
18365 | 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz> | |
18366 | ||
18367 | PR middle-end/32209 | |
18368 | * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New | |
18369 | functions. | |
18370 | (verify_dominators): Do not change dominance tree. | |
18371 | ||
18372 | 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org> | |
18373 | ||
18374 | * config/sh/constraints.md: New file. | |
18375 | * config/sh/sh.c: Include tm-constrs.h. | |
18376 | (reg_class_from_letter): Remove. | |
18377 | (prepare_cbranch_operands): Use satisfies_constraint_* | |
18378 | function instead of macro. | |
18379 | (andcosts, broken_move, sh_secondary_reload): Likewise. | |
18380 | * config/sh/predicates.md (trapping_target_operand): Likewise. | |
18381 | (and_operand, arith_operand, arith_reg_or_0_operand, | |
18382 | cmp_operand, logical_operand, target_operand, | |
18383 | ua_address_operand, ua_offset, xor_operand): Likewise. | |
18384 | * config/sh/sh.md: Include constraints.md. | |
18385 | (*movsicc_t_false): Use satisfies_constraint_* function | |
18386 | instead of macro. | |
18387 | (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m, | |
18388 | lshrsi3_k, movsi_const_16bit+2, *movhi_media+1, | |
18389 | movdi_const_16bit+1, beq, bne, *ptb): Likewise. | |
18390 | * config/sh/sh.h (reg_class_from_letter): Remove prototype. | |
18391 | (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter. | |
18392 | (REG_CLASS_FROM_CONSTRAINT): Remove. | |
18393 | (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I, | |
18394 | CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K, | |
18395 | CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M, | |
18396 | CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P, | |
18397 | CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. | |
18398 | (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_* | |
18399 | function instead of macro. | |
18400 | (SECONDARY_INPUT_RELOAD_CLASS): Likewise. | |
18401 | (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A, | |
18402 | EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B, | |
18403 | EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove. | |
18404 | (IS_PC_RELATIVE_LOAD_ADDR_P): New macro. | |
18405 | (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise. | |
18406 | (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise. | |
18407 | (IS_NON_EXPLICIT_CONSTANT_P): Likewise. | |
18408 | (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W, | |
18409 | EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C, | |
18410 | EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0, | |
18411 | EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S, | |
18412 | EXTRA_CONSTRAINT_STR): Likewise. | |
18413 | (GO_IF_LEGITIMATE_INDEX): Fix indentation. | |
18414 | ||
18415 | 2007-06-07 Geoffrey Keating <geoffk@apple.com> | |
18416 | ||
18417 | * config/i386/darwin.h (STACK_BOUNDARY): Define. | |
18418 | ||
18419 | 2007-06-07 Simon Martin <simartin@users.sourceforge.net> | |
18420 | ||
18421 | PR c++/30759 | |
18422 | * c-common.h (flag_cpp0x): Replaced by... | |
18423 | (cxx_dialect): ... this new variable specifying the C++ dialect that | |
18424 | is used. | |
18425 | * c-common.c (flag_cpp0x): Removed. | |
18426 | (cxx_dialect): Defined. | |
18427 | * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of | |
18428 | cxx_dialect. | |
18429 | * c-opts.c (c_common_post_options): Likewise. | |
18430 | (set_std_cxx98): Set cxx_dialect to cxx98. | |
18431 | (set_std_cxx0x): Set cxx_dialect to cxx0x. | |
18432 | ||
18433 | 2007-06-07 Geoffrey Keating <geoffk@apple.com> | |
18434 | Hui-May Chang <hm.chang@apple.com> | |
18435 | ||
18436 | * doc/invoke.texi (Darwin Options): Update documentation for | |
18437 | -mmacosx-version-min. | |
18438 | * config.gcc (*-*-darwin*): Set extra_gcc_objs. | |
18439 | * config/darwin-driver.c: New file. | |
18440 | * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New. | |
18441 | * config/t-darwin (darwin-driver.o): New rule. | |
18442 | ||
18443 | * config/darwin-c.c (version_as_macro): Ignore low digit. | |
18444 | ||
18445 | 2007-06-07 Uros Bizjak <ubizjak@gmail.com> | |
18446 | ||
18447 | * config/i386/i386.md (standard sse constant splitter): Handle TFmode. | |
18448 | (negtf2, abstf2, *absnegtf2_sse): New insn patterns. | |
18449 | (CSGNMODE): New mode macro. | |
18450 | (CSGNVMODE): New mode attribute. | |
18451 | (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize | |
18452 | expander using CSGNMODE mode macro. Handle TFmode. | |
18453 | (copysign<mode>3_const): Rename from copysignsf3_const and | |
18454 | copysigndf3_const. Macroize pattern using CSGNMODE mode macro. | |
18455 | Handle TFmode. | |
18456 | (copysign<mode>3_var): Rename from copysignsf3_var and | |
18457 | copysigndf3_var. Macroize pattern using CSGNMODE mode macro. | |
18458 | Handle TFmode. | |
18459 | (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE | |
18460 | mode macro. Handle TFmode. | |
18461 | * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns. | |
18462 | (iortf3, *iortf3): Ditto. | |
18463 | (xortf3, *xortf3): Ditto. | |
18464 | * config/i386/i386.c (ix86_build_signbit_mask): Create scalar | |
18465 | TFmode and TImode masks. | |
18466 | (ix86_expand_copysign): Expand TFmode copysign insn. | |
18467 | (IX86_BUILTIN_INFQ): New. | |
18468 | (IX86_BUILTIN_FABSQ): Ditto. | |
18469 | (IX86_BUILTIN_COPYSIGNQ): Ditto. | |
18470 | (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition. | |
18471 | [__builtin_fabsq]: Ditto. | |
18472 | [__builtin_copysignq]: Ditto. | |
18473 | (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin. | |
18474 | [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin(). | |
18475 | [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using | |
18476 | ix86_expand_binop_builtin(). | |
18477 | ||
18478 | 2007-06-07 Bob Wilson <bob.wilson@acm.org> | |
18479 | ||
18480 | * config/xtensa/lib1funcs.asm: Clean up whitespace. | |
18481 | ||
18482 | 2007-06-07 Steve Ellcey <sje@cup.hp.com> | |
18483 | ||
18484 | PR target/31850 | |
18485 | * rtl.h (push_to_sequence2): New. | |
18486 | * emit-rtl.c (push_to_sequence2): New. | |
18487 | * function.c (assign_parm_data_all): Add new fields. | |
18488 | (assign_parm_setup_block): Call push_to_sequence2 instead of | |
18489 | push_to_sequence. | |
18490 | (assign_parm_setup_reg): Ditto. | |
18491 | (assign_parm_setup_stack): Ditto. | |
18492 | (assign_parms_unsplit_complex): Ditto. | |
18493 | (assign_parms): Change field name. | |
18494 | ||
18495 | 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz> | |
18496 | ||
18497 | PR tree-optimization/32220 | |
18498 | * tree-predcom.c (eliminate_temp_copies): Handle the case that loop | |
18499 | phi node is reached before defining statement. | |
18500 | ||
18501 | 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
18502 | ||
18503 | PR tree-opt/32231 | |
18504 | * tree-vect-transform.c (vectorizable_call): Call update_stmt | |
18505 | after changing the right hand side of the assignment. | |
18506 | ||
18507 | 2007-06-06 Eric Christopher <echristo@apple.com> | |
18508 | ||
18509 | * config.gcc (i?86-*-darwin*): Remove arch parameter. | |
18510 | (x86_64-*-darwin*): Ditto. | |
18511 | * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define. | |
18512 | (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. | |
18513 | ||
18514 | 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> | |
18515 | ||
18516 | * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the | |
18517 | coding conventions. | |
18518 | (add_key): Likewise. | |
18519 | * tree-ssa.c (init_tree_ssa): Use type safe memory macros. | |
18520 | * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as | |
18521 | variable names. | |
18522 | * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory | |
18523 | macros. | |
18524 | (add_cost_one_coalesce): Likewise. | |
18525 | * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as | |
18526 | variable names. Rename orig to orig_name for consistency. | |
18527 | * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the | |
18528 | coding conventions. | |
18529 | (cprop_into_successor_phis): Avoid using C++ keywords as variable | |
18530 | names. | |
18531 | (record_equivalences_from_stmt): Likewise. | |
18532 | * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to | |
18533 | the coding conventions. | |
18534 | (memory_ssa_name_same): Likewise. | |
18535 | (dse_optimize_stmt): Likewise. | |
18536 | (dse_record_phis): Likewise. | |
18537 | (dse_finalize_block): Likewise. | |
18538 | * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++ | |
18539 | keywords as variable names. | |
18540 | (may_move_till): Cast according to the coding conventions. | |
18541 | (force_move_till_expr): Avoid using C++ keywords as variable names. | |
18542 | (force_move_till): Cast according to the coding conventions. | |
18543 | (memref_hash): Likewise. | |
18544 | (memref_eq): Likewise. | |
18545 | (gather_mem_refs_stmt): Likewise. | |
18546 | * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid | |
18547 | using C++ keywords as variable names. | |
18548 | (idx_find_step): Cast according to the coding conventions. | |
18549 | (idx_record_use): Likewise. | |
18550 | (find_depends): Likewise. | |
18551 | (prepare_decl_rtl): Likewise. | |
18552 | (mbc_entry_hash): Likewise. | |
18553 | (mbc_entry_eq): Likewise. | |
18554 | * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp. | |
18555 | (simplify_replace_tree): Avoid using C++ keywords as variable names. | |
18556 | (idx_infer_loop_bounds): Cast according to the coding conventions. | |
18557 | * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise. | |
18558 | * tree-ssa-math-opts.c (occ_new ): Likwise. | |
18559 | * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory | |
18560 | macros. | |
18561 | * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as | |
18562 | variable names. | |
18563 | (add_use_op): Likewise. | |
18564 | (add_vop): Likewise. | |
18565 | (add_vuse_op): Likewise. | |
18566 | (add_vdef_op): Likewise. | |
18567 | (get_expr_operands): Likewise. | |
18568 | (push_stmt_changes): Use type safe memory macros. | |
18569 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++ | |
18570 | keywords as variable names. | |
18571 | (conditional_replacement): Likewise. | |
18572 | (minmax_replacement): Likewise. | |
18573 | (abs_replacement): Likewise. | |
18574 | * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the | |
18575 | coding conventions. | |
18576 | (insert_fake_stores): Avoid using C++ keywords as variable names. | |
18577 | * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding | |
18578 | conventions. | |
18579 | * tree-ssa-structalias.c (heapvar_lookup): Likewise. | |
18580 | (heapvar_insert): Use type safe memory macros. | |
18581 | (new_var_info): Cast according to the coding conventions. | |
18582 | (new_constraint): Likewise. | |
18583 | (remove_preds_and_fake_succs): Use type safe memory macros. | |
18584 | * tree-ssa-threadupdate.c (thread_block): Cast according to the coding | |
18585 | conventions. | |
18586 | (thread_single_edge): Likewise. | |
18587 | (thread_through_loop_header): Likewise. | |
18588 | ||
18589 | 2007-06-06 Eric Christopher <echristo@apple.com> | |
18590 | ||
18591 | * config/i386/i386.c (override_options): Move handling | |
18592 | of TARGET_SUBTARGET* earlier. | |
18593 | ||
18594 | 2007-06-06 Paolo Bonzini <bonzini@gnu.org> | |
18595 | ||
18596 | * genmodes.c (tagged_printf, emit_insn_modes_h): Don't | |
18597 | use %n on printf. | |
18598 | ||
18599 | 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz> | |
18600 | ||
18601 | * haifa-sched.c (restore_bb_notes): Clear bb field of the notes | |
18602 | emited outside of basic block. | |
18603 | * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between | |
18604 | the created blocks. | |
18605 | * rtl.h (delete_insn_chain): Declaration changed. | |
18606 | * cfgrtl.c (delete_insn_chain): Add option to clear bb field for | |
18607 | non-removed insns. | |
18608 | (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain. | |
18609 | (delete_insn_chain_and_edges, try_redirect_by_replacing_jump, | |
18610 | rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false | |
18611 | to delete_insn_chain. | |
18612 | (rtl_verify_flow_info_1): Verify that the insns in header and footer | |
18613 | do not have bb field set. | |
18614 | (rtl_verify_flow_info): Verify that insns between basic blocks do not | |
18615 | have bb field set. | |
18616 | * recog.c (peephole2_optimize): Add argument to delete_insn_chain call. | |
18617 | * cfgcleanup.c (try_optimize_cfg): Ditto. | |
18618 | ||
18619 | 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> | |
18620 | ||
18621 | * lambda-code.c (struct lambda_lattice_s): Add a name to the struct. | |
18622 | (lambda_body_vector_new): Use type safe memory macros. | |
18623 | (lambda_linear_expression_new): Likewise. | |
18624 | (lambda_loopnest_new): Likewise. | |
18625 | (lambda_lattice_new): Likewise. | |
18626 | (replace_uses_equiv_to_x_with_y): Cast according to the coding | |
18627 | conventions. Use type safe memory macros. | |
18628 | * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct. | |
18629 | (lambda_body_vector_s): Likewise. | |
18630 | * lambda-mat.c (lambda_matrix_new): Use type safe memory macros. | |
18631 | * lambda-trans.c (lambda_trans_matrix_new): Likewise. | |
18632 | ||
18633 | 2007-06-06 Richard Guenther <rguenther@suse.de> | |
18634 | ||
18635 | * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2 | |
18636 | if we need to schedule cfg_cleanup. | |
18637 | (tree_ssa_forward_propagate_single_use_vars): Do so. | |
18638 | ||
18639 | 2007-06-06 Ian Lance Taylor <iant@google.com> | |
18640 | ||
18641 | * fold-const.c (merge_ranges): If range_successor or | |
18642 | range_predecessor fail, just return 0. | |
18643 | ||
18644 | 2007-06-06 Uros Bizjak <ubizjak@gmail.com> | |
18645 | ||
18646 | PR tree-optimization/32216 | |
18647 | * tree-vectorizer.c (supportable_widening_operation): Determine | |
18648 | signedness of FIX_TRUNC_EXPR from output operand. | |
18649 | (supportable_narrowing_operation): Ditto. | |
18650 | * tree-vect-generic.c (expand_vector_operations_1): Determine | |
18651 | signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR | |
18652 | from input operand. | |
18653 | ||
18654 | 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> | |
18655 | ||
18656 | * config/i386/i386.c (enum pta_flags): Move out of struct scope... | |
18657 | (struct pta): ...from here. Change flags to unsigned to avoid | |
18658 | excessive casting (as it is used as a bit mask). | |
18659 | (override_options): Add casts according to the coding convenventions. | |
18660 | (x86_64_elf_unique_section): Likewise. | |
18661 | (examine_argument): Avoid using C++ keywords as variable names. | |
18662 | (construct_container): Likewise. | |
18663 | (legitimize_pic_address): Likewise. | |
18664 | (get_dllimport_decl): Cast according to the coding conventions. Use | |
18665 | type safe memory macros. | |
18666 | (legitimize_address): Cast according to the coding conventions. | |
18667 | (emit_i387_cw_initialization): Corrected the type of slot to enum | |
18668 | ix86_stack_slot. | |
18669 | (ix86_init_machine_status): Use type safe memory macros. | |
18670 | (bdesc_pcmpestr): Use UNKNOWN instead of integer 0. | |
18671 | (bdesc_pcmpistr): Likewise. | |
18672 | (bdesc_crc32): Likewise. | |
18673 | (bdesc_sse_3arg): Likewise. | |
18674 | (bdesc_2arg): Likewise. | |
18675 | (bdesc_1arg): Likewise. | |
18676 | (ix86_expand_sse_pcmpestr): Cast according to the coding conventions. | |
18677 | (ix86_expand_sse_pcmpistr): Likewise. | |
18678 | (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0. | |
18679 | (ix86_builtin_vectorized_function): Change the type of fn to unsigned | |
18680 | int to match the langhook definition. | |
18681 | (ix86_builtin_conversion): Change the type of code to unsigned init to | |
18682 | match the langhook definition. | |
18683 | (ix86_preferred_reload_class): Avoid using C++ keywords as variable | |
18684 | names. | |
18685 | (ix86_preferred_output_reload_class): Likewise. | |
18686 | (ix86_cannot_change_mode_class): Likewise. | |
18687 | (ix86_memory_move_cost): Likewise. | |
18688 | (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to | |
18689 | avoid excessive casting later on. | |
18690 | (x86_output_mi_thunk): Avoid using C++ keywords as variable names. | |
18691 | ||
18692 | 2007-06-06 Uros Bizjak <ubizjak@gmail.com> | |
18693 | ||
18694 | * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm | |
18695 | as flags setting insn. | |
18696 | (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn. | |
18697 | ||
18698 | 2007-06-06 Uros Bizjak <ubizjak@gmail.com> | |
18699 | ||
18700 | * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove. | |
18701 | (UNSPEC_ROUND): New. | |
18702 | ("sse4_1_round<mode>2"): New insn pattern. | |
18703 | ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for | |
18704 | SSE4.1 targets. | |
18705 | ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize | |
18706 | expander using SSEMODEF mode macro. Expand using | |
18707 | "sse4_1_round<mode>2" pattern for SSE4.1 targets. | |
18708 | ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize | |
18709 | expander using SSEMODEF mode macro. Expand using | |
18710 | "sse4_1_round<mode>2" pattern for SSE4.1 targets. | |
18711 | ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize | |
18712 | expander using SSEMODEF mode macro. Expand using | |
18713 | "sse4_1_round<mode>2" pattern for SSE4.1 targets. | |
18714 | * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use | |
18715 | UNSPEC_ROUND instead of UNSPEC_ROUNDP. | |
18716 | ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of | |
18717 | UNSPEC_ROUNDS. | |
18718 | ||
18719 | 2007-06-06 Jan Sjodin <jan.sjodin@amd.com> | |
18720 | Sebastian Pop <sebpop@gmail.com> | |
18721 | ||
18722 | * lambda.h (build_linear_expr): New. | |
18723 | * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression): | |
18724 | Use build_linear_expr, call fold and force_gimple_operand. | |
18725 | (lambda_loopnest_to_gcc_loopnest): Check that there is | |
18726 | something to insert. | |
18727 | * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New. | |
18728 | ||
18729 | 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> | |
18730 | ||
18731 | PR preprocessor/23479 | |
18732 | * doc/extend.texi: Document the 0b-prefixed binary integer | |
18733 | constant extension. | |
18734 | ||
18735 | 2007-06-05 Uros Bizjak <ubizjak@gmail.com> | |
18736 | ||
18737 | PR tree-optimization/32215 | |
18738 | * tree-vectorizer.c (supportable_widening_operation): Return false | |
18739 | for unsupported FIX_TRUNC_EXPR tree code. | |
18740 | (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code. | |
18741 | ||
18742 | 2007-06-06 Nathan Froyd <froydnj@codesourcery.com> | |
18743 | ||
18744 | * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch | |
18745 | register on SPE targets. Change documentation to reflect | |
18746 | reality. | |
18747 | * config/rs6000/rs6000.c (rs6000_conditional_register_usage): | |
18748 | Change FIXED_SCRATCH to 14 and document why we're keeping r14 | |
18749 | out of the register allocation pool. | |
18750 | (rs6000_reg_live_or_pic_offset_p): New function. | |
18751 | (rs6000_emit_prologue): Move the actual saving of LR up to free | |
18752 | r0 for holding r11. Split saving of SPE 64-bit registers into | |
18753 | its own case. Ensure that offsets will always be in-range for | |
18754 | 'evstdd' by using r11 as a scratch register to point at the start | |
18755 | of the SPE save area. Save r11 if necessary, as it is the static | |
18756 | chain register. | |
18757 | (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers | |
18758 | into its own case. Ensure that offsets will always be in-range | |
18759 | for 'evldd' by using r11 as a scratch register to point at the | |
18760 | start of the SPE save area. Also adjust r11 when restoring | |
18761 | the stack pointer to compensate for pre-loading r11. | |
18762 | ||
18763 | 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net> | |
18764 | ||
18765 | * cfg.c (init_flow): Use type safe memory macros. | |
18766 | (alloc_block): Likewise. | |
18767 | (unchecked_make_edge): Likewise. | |
18768 | (dump_flow_info): Avoid using C++ keywords as variable names. | |
18769 | (copy_original_table_clear): Cast according to the coding conventions. | |
18770 | (copy_original_table_set): Likewise. | |
18771 | * cfgexpand (label_rtx_for_bb): Likewise. | |
18772 | (expand_gimple_basic_block): Likewise. | |
18773 | * cfghooks.c (dump_bb): Likewise. | |
18774 | (lv_adjust_loop_header_phi): Avoid using C++ keywords as | |
18775 | variable names. | |
18776 | (lv_add_condition_to_bb): Likewise. | |
18777 | * cfglayout (relink_block_chain): Cast according to the coding | |
18778 | conventions. | |
18779 | (fixup_reorder_chain): Likewise. | |
18780 | (fixup_fallthru_exit_predecessor): Likewise. | |
18781 | * cfgloop.c (glb_enum_p): Likewise. | |
18782 | (get_exit_description): Likewise. | |
18783 | (dump_recorded_exit): Likewise. | |
18784 | * cfgloop.h (enum loop_estimation): Move out of struct scope... | |
18785 | (struct loop): ... from here. | |
18786 | * cfgloopmanip.c (rpe_enum_p): Cast according to the coding | |
18787 | conventions. | |
18788 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
18789 | (rtl_split_block): Likewise. | |
18790 | (rtl_dump_bb): Likewise. | |
18791 | (cfg_layout_split_block): Likewise. | |
18792 | (init_rtl_bb_info): Use typesafe memory macros. | |
18793 | ||
18794 | * graphds.h (struct graph_edge): Renamed edge to graph_edge. | |
18795 | * graphds.h: Updated all usages of edge to graph_edge. | |
18796 | * graphds.c: Likewise. | |
18797 | * cfgloopanal.c: Likewise. | |
18798 | ||
18799 | 2007-06-05 Ian Lance Taylor <iant@google.com> | |
18800 | ||
18801 | * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a | |
18802 | PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p. | |
18803 | (extract_range_from_assert): Set TREE_NO_WARNING when creating an | |
18804 | expression. | |
18805 | (test_for_singularity): Likewise. | |
18806 | ||
18807 | 2007-06-05 H.J. Lu <hongjiu.lu@intel.com> | |
18808 | ||
18809 | * config/i386/constraints.md ("Y2"): Replaced by ... | |
18810 | ("Yt"): This. | |
18811 | * config/i386/i386.md: Likewise. | |
18812 | * config/i386/mmx.md: Likewise. | |
18813 | * config/i386/sse.md: Likewise. | |
18814 | ||
18815 | 2007-06-05 H.J. Lu <hongjiu.lu@intel.com> | |
18816 | ||
18817 | * config/i386/constraints.md ("z"): Replaced by ... | |
18818 | ("Y0"): This. | |
18819 | * config/i386/sse.md (sse4_1_blendvpd): Likewise. | |
18820 | (sse4_1_blendvps): Likewise. | |
18821 | (sse4_1_pblendvb): Likewise. | |
18822 | (sse4_2_pcmpestr): Likewise. | |
18823 | (sse4_2_pcmpestrm): Likewise. | |
18824 | (sse4_2_pcmpestr_cconly): Likewise. | |
18825 | (sse4_2_pcmpistr): Likewise. | |
18826 | (sse4_2_pcmpistrm): Likewise. | |
18827 | (sse4_2_pcmpistr_cconly): Likewise. | |
18828 | ||
18829 | 2007-06-05 Razya Ladelsky <razya@il.ibm.com> | |
18830 | ||
18831 | * matrix-reorg.c (transform_access_sites): Fix computation. | |
18832 | (transform_allocation_sites): Same. | |
18833 | ||
18834 | 2007-06-05 Uros Bizjak <ubizjak@gmail.com> | |
18835 | ||
18836 | * config/i386/i386.c (override_options): Use | |
18837 | TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags. | |
18838 | ||
18839 | 2007-06-05 Uros Bizjak <ubizjak@gmail.com> | |
18840 | ||
18841 | * config/i386/predicates.md (reg_not_xmm0_operand): New predicate. | |
18842 | (nonimm_not_xmm0_operand): Ditto. | |
18843 | * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand" | |
18844 | as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand" | |
18845 | as operand[2] predicate. Require "z" class XMM register for | |
18846 | operand[3]. Adjust asm template. | |
18847 | ("sse4_1_blendvpd"): Ditto. | |
18848 | ("sse4_1_pblendvb"): Ditto. | |
18849 | * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not | |
18850 | force op2 into xmm0 register for variable blend instructions. | |
18851 | ||
18852 | 2007-06-04 Tom Tromey <tromey@redhat.com> | |
18853 | ||
18854 | * c-tree.h (start_enum): Update. | |
18855 | (build_enumerator): Likewise. | |
18856 | * c-decl.c (enum_next_value): Removed. | |
18857 | (enum_overflow): Likewise. | |
18858 | (start_enum): Add c_enum_contents argument. Don't use globals. | |
18859 | (build_enumerator): Likewise. | |
18860 | * c-tree.h (struct c_enum_contents): New struct. | |
18861 | ||
18862 | 2007-06-04 Tom Tromey <tromey@redhat.com> | |
18863 | ||
18864 | * c-common.c (c_common_get_alias_set): Fix indentation. | |
18865 | ||
18866 | 2007-06-04 Ian Lance Taylor <iant@google.com> | |
18867 | ||
18868 | * tree-vrp.c (adjust_range_with_scev): When loop is not expected | |
18869 | to overflow, reduce overflow infinity to regular infinity. | |
18870 | (vrp_var_may_overflow): New static function. | |
18871 | (vrp_visit_phi_node): Check vrp_var_may_overflow. | |
18872 | ||
18873 | 2007-06-04 Kazu Hirata <kazu@codesourcery.com> | |
18874 | ||
18875 | * stor-layout.c (layout_type): Remove duplicate code. | |
18876 | ||
18877 | 2007-06-04 Uros Bizjak <ubizjak@gmail.com> | |
18878 | ||
18879 | PR c/32191 | |
18880 | * c-common.c (c_define_builtins): Call targetm.init_builtins () | |
18881 | before build_common_builtin_nodes (). | |
18882 | ||
18883 | 2007-06-04 Steve Ellcey <sje@cup.hp.com> | |
18884 | ||
18885 | PR target/31733 | |
18886 | * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier. | |
18887 | ||
18888 | 2007-06-04 Jan Hubicka <jh@suse.cz> | |
18889 | ||
18890 | * tree-predcom.c (replace_ref_with, initialize_root_vars_lm, | |
18891 | reassociate_to_the_same_stmt): Call build_gimple_modify_stmt | |
18892 | instead of _stat version. | |
18893 | ||
18894 | 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz> | |
18895 | ||
18896 | PR tree-optimization/32194 | |
18897 | * tree-predcom.c (determine_offset): Check that both references have | |
18898 | the same type. | |
18899 | ||
18900 | 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz> | |
18901 | ||
18902 | * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge): | |
18903 | Change dom_bbs to vector. Add argument to iterate_fix_dominators call. | |
18904 | * loop-unroll.c (unroll_loop_runtime_iterations): Ditto. | |
18905 | * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector. | |
18906 | Add argument to iterate_fix_dominators call. | |
18907 | (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom. | |
18908 | * gcse.c (hoist_code): Change domby to vector. | |
18909 | * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector. | |
18910 | Add argument to iterate_fix_dominators call. | |
18911 | * loop-doloop.c (doloop_modify): Changed recount_dominator to | |
18912 | recompute_dominator. | |
18913 | * lambda-code.c (perfect_nestify): Ditto. | |
18914 | * cfgloopanal.c: Include graphds.h. | |
18915 | (struct edge, struct vertex, struct graph, dump_graph, new_graph, | |
18916 | add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c. | |
18917 | (mark_irreducible_loops): Use graphds_scc. Remove argument from | |
18918 | add_edge call. | |
18919 | * graphds.c: New file. | |
18920 | * graphds.h: New file. | |
18921 | * dominance.c: Include vecprim.h, pointer-set.h and graphds.h. | |
18922 | (get_dominated_by, get_dominated_by_region): Change return type to | |
18923 | vector. | |
18924 | (verify_dominators): Recompute all dominators and compare the results. | |
18925 | (recount_dominator): Renamed to ... | |
18926 | (recompute_dominator): ... this. Do not check that the block is | |
18927 | dominated by entry. | |
18928 | (iterate_fix_dominators): Reimplemented. | |
18929 | (prune_bbs_to_update_dominators, root_of_dom_tree, | |
18930 | determine_dominators_for_sons): New functions. | |
18931 | * et-forest.c (et_root): New function. | |
18932 | * et-forest.h (et_root): Declare. | |
18933 | * Makefile.in (graphds.o): Add. | |
18934 | (cfgloopanal.o): Add graphds.h dependency. | |
18935 | (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency. | |
18936 | * basic-block.h (get_dominated_by, get_dominated_by_region, | |
18937 | iterate_fix_dominators): Declaration changed. | |
18938 | (recount_dominator): Renamed to ... | |
18939 | (recompute_dominator): ... this. | |
18940 | * tree-ssa-threadupdate.c (thread_block): Free dominance info. | |
18941 | (thread_through_all_blocks): Do not free dominance info. | |
18942 | ||
18943 | 2007-06-03 Andreas Schwab <schwab@suse.de> | |
18944 | ||
18945 | * config/m68k/m68k.c (override_options): Don't override | |
18946 | REAL_MODE_FORMAT. | |
18947 | * config/m68k/m68k-modes.def (SF, DF): Define to use | |
18948 | motorola_single_format and motorola_double_format, resp. | |
18949 | * real.c (motorola_single_format): Renamed from | |
18950 | coldfire_single_format. | |
18951 | (motorola_double_format): Renamed from coldfire_double_format. | |
18952 | (encode_ieee_extended): Generate a proper canonical NaN image | |
18953 | respecting canonical_nan_lsbs_set. | |
18954 | (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to | |
18955 | true. | |
18956 | * real.h: Adjust declarations. | |
18957 | ||
18958 | 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org> | |
18959 | ||
18960 | PR target/32163 | |
18961 | * config/sh/sh.md (symGOT_load): Don't schedule insns when | |
18962 | the symbol is generated with the stack protector. | |
18963 | ||
18964 | 2007-06-03 Kazu Hirata <kazu@codesourcery.com> | |
18965 | ||
18966 | * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt". | |
18967 | (m68k_get_function_kind): Return m68k_fk_interrupt_handler on | |
18968 | "interrupt". | |
18969 | * doc/extend.texi (interrupt): Mention m68k. | |
18970 | ||
18971 | 2007-06-02 Uros Bizjak <ubizjak@gmail.com> | |
18972 | ||
18973 | * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call | |
18974 | safe_vector_operand() if input operand is VECTOR_MODE_P operand. | |
18975 | (ix86_expand_sse_pcmpestr): Do not check operands for | |
18976 | "register_operand", when insn operand predicate is "register_operand". | |
18977 | (ix86_expand_sse_pcmpistr): Ditto. | |
18978 | ||
18979 | 2007-06-02 H.J. Lu <hongjiu.lu@intel.com> | |
18980 | Uros Bizjak <ubizjak@gmail.com> | |
18981 | ||
18982 | * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New. | |
18983 | (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS. | |
18984 | (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string. | |
18985 | (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class. | |
18986 | * config/i386/constraints.md ("z"): New register constraint | |
18987 | for members of SSE_FIRST_REG class. | |
18988 | * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes. | |
18989 | * config/i386/i386.c (regclass_map): Change class of %xmm0 to | |
18990 | SSE_FIRST_REG class. | |
18991 | (put_condition_code) [EQ, NE]: Output suffixes for new compare modes. | |
18992 | (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes. | |
18993 | (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2. | |
18994 | (IX86_BUILTIN_PCMPESTRM128): Likewise. | |
18995 | (IX86_BUILTIN_PCMPESTRA128): Likewise. | |
18996 | (IX86_BUILTIN_PCMPESTRC128): Likewise. | |
18997 | (IX86_BUILTIN_PCMPESTRO128): Likewise. | |
18998 | (IX86_BUILTIN_PCMPESTRS128): Likewise. | |
18999 | (IX86_BUILTIN_PCMPESTRZ128): Likewise. | |
19000 | (IX86_BUILTIN_PCMPISTRI128): Likewise. | |
19001 | (IX86_BUILTIN_PCMPISTRM128): Likewise. | |
19002 | (IX86_BUILTIN_PCMPISTRA128): Likewise. | |
19003 | (IX86_BUILTIN_PCMPISTRC128): Likewise. | |
19004 | (IX86_BUILTIN_PCMPISTRO128): Likewise. | |
19005 | (IX86_BUILTIN_PCMPISTRS128): Likewise. | |
19006 | (IX86_BUILTIN_PCMPISTRZ128): Likewise. | |
19007 | (struct builtin_description): Change "flag" field to unsigned. | |
19008 | (bdesc_pcmpestr): New builtin description table. | |
19009 | (bdesc_pcmpistr): Likewise. | |
19010 | (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int, | |
19011 | v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int. | |
19012 | Initialize pcmp[ei]str[im] insns for SSE4.2. | |
19013 | (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin. | |
19014 | (ix86_expand_sse_pcmpistr): Likewise. | |
19015 | (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2. | |
19016 | * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2. | |
19017 | (UNSPEC_PCMPISTR): Likewise. | |
19018 | * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter. | |
19019 | (sse4_2_pcmpestri):New isns pattern. | |
19020 | (sse4_2_pcmpestrm): Likewise. | |
19021 | (sse4_2_pcmpestr_cconly): Likewise. | |
19022 | (sse4_2_pcmpistr): New insn patern and splitter. | |
19023 | (sse4_2_pcmpistri):New isns pattern. | |
19024 | (sse4_2_pcmpistrm): Likewise. | |
19025 | (sse4_2_pcmpistr_cconly): Likewise. | |
19026 | * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics | |
19027 | in SSE4.2. | |
19028 | ||
19029 | 2007-06-01 David Daney <ddaney@avtrex.com> | |
19030 | ||
19031 | * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not | |
19032 | LOADGP_ABSOLUTE and not binds_local_p. | |
19033 | ||
19034 | 2007-06-01 Geoffrey Keating <geoffk@apple.com> | |
19035 | ||
19036 | * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker. | |
19037 | ||
19038 | 2007-06-01 Ian Lance Taylor <iant@google.com> | |
19039 | ||
19040 | * tree-vrp.c (compare_name_with_value): Always set | |
19041 | used_strict_overflow if we get a result from the variable itself. | |
19042 | ||
19043 | 2007-06-01 Ian Lance Taylor <iant@google.com> | |
19044 | ||
19045 | PR rtl-optimization/31455 | |
19046 | * lower-subreg.c (find_decomposable_subregs): Don't decompose | |
19047 | subregs which have a cast between modes which are not tieable. | |
19048 | ||
19049 | 2007-06-01 Uros Bizjak <ubizjak@gmail.com> | |
19050 | ||
19051 | * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove | |
19052 | breaks after return statements. | |
19053 | ||
19054 | 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org> | |
19055 | ||
19056 | * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg | |
19057 | only after no_new_pseudos. | |
19058 | ||
19059 | 2007-05-31 Eric Christopher <echristo@apple.com> | |
19060 | ||
19061 | * expr.c (convert_move): Assert that we don't have a BLKmode | |
19062 | operand. | |
19063 | (store_expr): Handle BLKmode moves by calling emit_block_move. | |
19064 | ||
19065 | 2007-05-31 Daniel Berlin <dberlin@dberlin.org> | |
19066 | ||
19067 | * c-typeck.c (build_indirect_ref): Include type in error message. | |
19068 | (build_binary_op): Pass types to binary_op_error. | |
19069 | * c-common.c (binary_op_error): Take two type arguments, print out | |
19070 | types with error. | |
19071 | * c-common.h (binary_op_error): Update prototype. | |
19072 | ||
19073 | 2007-05-31 H.J. Lu <hongjiu.lu@intel.com> | |
19074 | ||
19075 | * config/i386/i386.c: Correct coments on -mno-sse4. | |
19076 | ||
19077 | 2007-05-31 H.J. Lu <hongjiu.lu@intel.com> | |
19078 | ||
19079 | * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers. | |
19080 | (x86_64-*-*): Likewise. | |
19081 | * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New. | |
19082 | (OPTION_MASK_ISA_3DNOW_UNSET): Likewise. | |
19083 | (OPTION_MASK_ISA_SSE_UNSET): Likewise. | |
19084 | (OPTION_MASK_ISA_SSE2_UNSET): Likewise. | |
19085 | (OPTION_MASK_ISA_SSE3_UNSET): Likewise. | |
19086 | (OPTION_MASK_ISA_SSSE3_UNSET): Likewise. | |
19087 | (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise. | |
19088 | (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise. | |
19089 | (OPTION_MASK_ISA_SSE4): Likewise. | |
19090 | (OPTION_MASK_ISA_SSE4_UNSET): Likewise. | |
19091 | (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. | |
19092 | (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2. | |
19093 | (override_options): Support SSE4.2. | |
19094 | (ix86_build_const_vector): Support SImode and DImode. | |
19095 | (ix86_build_signbit_mask): Likewise. | |
19096 | (ix86_expand_int_vcond): Support V2DImode. | |
19097 | (IX86_BUILTIN_CRC32QI): New for SSE4.2. | |
19098 | (IX86_BUILTIN_CRC32HI): Likewise. | |
19099 | (IX86_BUILTIN_CRC32SI): Likewise. | |
19100 | (IX86_BUILTIN_CRC32DI): Likewise. | |
19101 | (IX86_BUILTIN_PCMPGTQ): Likewise. | |
19102 | (bdesc_crc32): Likewise. | |
19103 | (bdesc_sse_3arg): Likewise. | |
19104 | (ix86_expand_crc32): Likewise. | |
19105 | (ix86_init_mmx_sse_builtins): Support SSE4.2. | |
19106 | (ix86_expand_builtin): Likewise. | |
19107 | * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define | |
19108 | __SSE4_2__ for -msse4.2. | |
19109 | * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2. | |
19110 | (CRC32MODE): Likewise. | |
19111 | (crc32modesuffix): Likewise. | |
19112 | (crc32modeconstraint): Likewise. | |
19113 | (sse4_2_crc32<mode>): Likewise. | |
19114 | (sse4_2_crc32di): Likewise. | |
19115 | * config/i386/i386.opt (msse4.2): New for SSE4.2. | |
19116 | (msse4): Likewise. | |
19117 | * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file. | |
19118 | * config/i386/smmintrin.h: Add SSE4.2 intrinsics. | |
19119 | * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2. | |
19120 | (vcond<mode>): Use SSEMODEI instead of SSEMODE124. | |
19121 | (vcondu<mode>): Likewise. | |
19122 | * doc/extend.texi: Document SSE4.2 built-in functions. | |
19123 | * doc/invoke.texi: Document -msse4.2/-msse4. | |
19124 | ||
19125 | 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz> | |
19126 | ||
19127 | PR tree-optimization/32160 | |
19128 | * tree-predcom.c (predcom_tmp_var): New function. Mark created | |
19129 | variable as gimple reg. | |
19130 | (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var. | |
19131 | ||
19132 | 2007-05-31 Kazu Hirata <kazu@codesourcery.com> | |
19133 | ||
19134 | * gcc.c (main): Don't consider linker options when issuing the | |
19135 | warning about a linker input file not being used. | |
19136 | ||
19137 | 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | |
19138 | ||
19139 | * tree-vrp.c (compare_names): Initialize sop. | |
19140 | ||
19141 | 2007-05-30 Dirk Mueller <dmueller@suse.de> | |
19142 | ||
19143 | * cgraphunit.c (cgraph_analyze_function): Remove | |
19144 | computation of inline parameters. | |
19145 | ||
19146 | 2007-05-30 Uros Bizjak <ubizjak@gmail.com> | |
19147 | ||
19148 | * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define. | |
19149 | ||
19150 | 2007-05-30 Richard Sandiford <richard@codesourcery.com> | |
19151 | ||
19152 | * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file. | |
19153 | Add vx-common.h. Include vxworks.h between vx-common.h and | |
19154 | arm/vxworks.h. | |
19155 | * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before | |
19156 | redefining. | |
19157 | * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise. | |
19158 | (TARGET_ASM_DESTRUCTOR): Likewise. | |
19159 | * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale | |
19160 | instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS. | |
19161 | (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. | |
19162 | (CC1_SPEC): Add -tstrongarm. Line up backslashes. | |
19163 | (VXWORKS_ENDIAN_SPEC): Define. | |
19164 | (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC. | |
19165 | (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their | |
19166 | VXWORKS_* equivalents. | |
19167 | (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC. | |
19168 | (ASM_FILE_START): Delete. | |
19169 | (TARGET_VERSION): Reformat. | |
19170 | (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define. | |
19171 | (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define. | |
19172 | * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define. | |
19173 | (FPBIT, DPBIT): Define. | |
19174 | (fp-bit.c, dp-bit.c): New rules. | |
19175 | (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs. | |
19176 | (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define. | |
19177 | * config/arm/arm-protos.h (arm_emit_call_insn): Declare. | |
19178 | * config/arm/arm.h: Include vxworks-dummy.h. | |
19179 | * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor): | |
19180 | Mark with ATTRIBUTE_UNUSED. | |
19181 | (arm_override_options): Do not allow VxWorks RTP PIC to be used | |
19182 | for Thumb. Force r9 to be the PIC register for VxWorks RTPs and | |
19183 | make it incompatible with -msingle-pic-base. | |
19184 | (arm_function_ok_for_sibcall): Return false for calls that might | |
19185 | go through a VxWorks PIC PLT entry. | |
19186 | (require_pic_register): New function, split out from... | |
19187 | (legitimize_pic_address): ...here. Do not use GOTOFF accesses | |
19188 | for VxWorks RTPs. | |
19189 | (arm_load_pic_register): Handle the VxWorks RTP initialization | |
19190 | sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg. | |
19191 | (arm_emit_call_insn): New function. | |
19192 | (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP. | |
19193 | * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number. | |
19194 | (pic_offset_arm): New pattern. | |
19195 | (call, call_value): Use arm_emit_call_insn. | |
19196 | (call_internal, call_value_internal): New expanders. | |
19197 | * config/arm/lib1funcs.asm (__PLT__): Define to empty for | |
19198 | VxWorks unless __PIC__. | |
19199 | ||
19200 | 2007-05-30 Eric Christopher <echristo@gmail.com> | |
19201 | ||
19202 | * genrecog.c: Include regs.h in generated file. | |
19203 | * genemit.c: Ditto. Fix up formatting. | |
19204 | * config/mn10300/constraints.md: New. | |
19205 | * config/mn10300/mn10300.md: Include. | |
19206 | * config/mn10300/mn10300.c(mn10300_secondary_reload_class): | |
19207 | Fix up for removed macro. | |
19208 | * config/mn10300/predicates.md (call_address_operand): Ditto. | |
19209 | * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete. | |
19210 | (CONST_OK_FOR_I): Ditto. | |
19211 | (CONST_OK_FOR_J): Ditto. | |
19212 | (CONST_OK_FOR_K): Ditto. | |
19213 | (CONST_OK_FOR_L): Ditto. | |
19214 | (CONST_OK_FOR_M): Ditto. | |
19215 | (CONST_OK_FOR_N): Ditto. | |
19216 | (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto. | |
19217 | (OK_FOR_Q): Ditto. | |
19218 | (OK_FOR_R): Ditto. | |
19219 | (OK_FOR_T): Ditto. | |
19220 | (EXTRA_CONSTRAINT): Ditto. | |
19221 | ||
19222 | 2007-05-30 Uros Bizjak <ubizjak@gmail.com> | |
19223 | ||
19224 | * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*): | |
19225 | Remove defines. | |
19226 | * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to | |
19227 | OPTION_MASK_ISA_64BIT. | |
19228 | * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*. | |
19229 | ||
19230 | 2007-05-30 Richard Guenther <rguenther@suse.de> | |
19231 | ||
19232 | PR middle-end/32152 | |
19233 | * gimplify.c (gimplify_omp_atomic_pipeline): Use correct | |
19234 | types for comparison. | |
19235 | * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison | |
19236 | with original typed arguments. | |
19237 | * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches. | |
19238 | ||
19239 | 2007-05-30 Jakub Jelinek <jakub@redhat.com> | |
19240 | ||
19241 | PR tree-optimization/31769 | |
19242 | * except.c (duplicate_eh_regions): Clear prev_try if | |
19243 | ERT_MUST_NOT_THROW region is inside of ERT_TRY region. | |
19244 | ||
19245 | 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz> | |
19246 | ||
19247 | * tree-scalar-evolution.c (scev_const_prop): Do not create labels. | |
19248 | * tree-ssa-sink.c (statement_sink_location): Return basic block and | |
19249 | bsi of the location where statements should be inserted. | |
19250 | (sink_code_in_bb): Take bsi from statement_sink_location. | |
19251 | * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels | |
19252 | instead of bsi_start. | |
19253 | * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to | |
19254 | bsi_insert_after. | |
19255 | * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after. | |
19256 | (bsi_move_before): Document inconsistency with bsi_move_after. | |
19257 | (tree_redirect_edge_and_branch): Do not create labels if not necessary. | |
19258 | ||
19259 | 2007-05-30 Uros Bizjak <ubizjak@gmail.com> | |
19260 | ||
19261 | * config/i386/i386.h (TARGET_ABM): New define. | |
19262 | (TARGET_POPCNT): Ditto. | |
19263 | (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*): | |
19264 | New temporary defines to redefine from OPTION_ISA_* defines. | |
19265 | (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*): | |
19266 | New temporary defines to redefine from OPTION_MASK_ISA_* defines. | |
19267 | (ix86_isa_flags): New extern int declaration. | |
19268 | (TARGET_SUBTARGET_DEFAULT): New define. | |
19269 | (TARGET_SUBTARGET_ISA_DEFAULT): Ditto. | |
19270 | (TARGET_SUBTARGET32_DEFAULT): Ditto. | |
19271 | (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto. | |
19272 | (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. | |
19273 | * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define. | |
19274 | * config/i386/darwin.h: Change TARGET_64BIT define to | |
19275 | OPTION_ISA_64BIT. | |
19276 | ||
19277 | * config/i386/i386.opt (m3dnowa): Define as undocumented option | |
19278 | using existing "ix86_isa_flags" varible. | |
19279 | (m32, m64): Use existing "ix86_isa_flags" variable. | |
19280 | (mmmx, m3dnow): Ditto. | |
19281 | (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto. | |
19282 | (mabm): Define as non-negative option using "x86_abm" variable. | |
19283 | (mpopcnt): Define as non-negative option using "x86_popcnt" variable. | |
19284 | ||
19285 | * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]: | |
19286 | Rewrite feature test bitmap. | |
19287 | (ix86_isa_flags): New initialized global int varible. | |
19288 | (ix86_isa_flags_explicit): New static int variable. | |
19289 | (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow, | |
19290 | msse, msse2, msse3, msse4.1 and msse4a option is processed. Change | |
19291 | i86_isa_flags and ix86_isa_flags_explicit, not target_flags and | |
19292 | target_flags_explicit. | |
19293 | (override_options): Remove "target_enable" and "target_disable" fields | |
19294 | from "struct ptt". Update processor_target_table accordingly. Remove | |
19295 | PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is | |
19296 | defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of | |
19297 | "target_flags" and "ix86_isa_flags_explicit" instead of | |
19298 | "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX, | |
19299 | MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when | |
19300 | PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt" | |
19301 | to true when either of PTA_POPCNT or PTA_ABM is set in | |
19302 | processor_alias_table flags entry. Set "x86_prefetch_sse" to true | |
19303 | when either of PTA_PREFETCH_SSE or PTA_SSE is set in | |
19304 | processor_alias_table flags entry. Remove handling of | |
19305 | "target_enable" and "target_disable" fields of processor_target_table. | |
19306 | Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit | |
19307 | targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets. | |
19308 | Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit | |
19309 | targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets. | |
19310 | (def_builtin): Mask "mask" variable with "ix86_isa_flags", not | |
19311 | "target_flags". | |
19312 | (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT. | |
19313 | ||
19314 | 2007-05-29 David Daney <ddaney@avtrex.com> | |
19315 | ||
19316 | PR gcc/31975 | |
19317 | * config/mips/mips.c (mips_output_mi_thunk): Emit | |
19318 | NOTE_INSN_PROLOGUE_END at beginning of the thunk. | |
19319 | ||
19320 | 2007-05-29 Hui-May Chang <hm.chang@apple.com> | |
19321 | * config/i386/i386.c (ix86_function_regparm): Added checking of | |
19322 | ix86_force_align_arg_pointer to determine the number of | |
19323 | register parameters. | |
19324 | ||
19325 | 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz> | |
19326 | ||
19327 | * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer. | |
19328 | (SET_DR_MISALIGNMENT): New. | |
19329 | * tree-vect-analyze.c (vect_compute_data_ref_alignment, | |
19330 | vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment): | |
19331 | Use SET_DR_MISALIGNMENT. | |
19332 | * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from | |
19333 | pointer. | |
19334 | * tree-data-ref.c (create_data_ref, compute_all_dependences, | |
19335 | find_loop_nest): Export. | |
19336 | * tree-data-ref.h (struct data_reference): Change aux field to pointer. | |
19337 | (create_data_ref, compute_all_dependences, find_loop_nest): Declare. | |
19338 | * tree-ssa-loop-prefetch.c: Include tree-data-ref.h. | |
19339 | (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION): | |
19340 | New macros. | |
19341 | (struct mem_ref): Add field reuse_distance. | |
19342 | (find_or_create_group, record_ref): Use XNEW instead of xcalloc. | |
19343 | Initialize reuse_distance field. | |
19344 | (issue_prefetch_ref): Select temporality of prefetch according to | |
19345 | reuse_distance. | |
19346 | (volume_of_references, volume_of_dist_vector, add_subscript_strides, | |
19347 | self_reuse_distance, determine_loop_nest_reuse): New functions. | |
19348 | (loop_prefetch_arrays): Call determine_loop_nest_reuse. | |
19349 | (tree_ssa_prefetch_arrays): Dump L2 cache size. | |
19350 | * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H | |
19351 | dependency. | |
19352 | ||
19353 | 2007-05-29 Daniel Berlin <dberlin@dberlin.org> | |
19354 | ||
19355 | * tree-ssa-alias.c: Add aliasing overview. | |
19356 | ||
19357 | 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com> | |
19358 | Danny Smith <dannysmith@users.sourceforge.net> | |
19359 | ||
19360 | PR target/29498 | |
19361 | * config/i386/t-crtfm: Compile crtfastmath.o with | |
19362 | -minline-all-stringops. | |
19363 | * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o. | |
19364 | * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o. | |
19365 | ||
19366 | 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
19367 | ||
19368 | * doc/md.texi: Document constraints on HP PA-RISC. | |
19369 | ||
19370 | * pa/constraints.md: New file. | |
19371 | * pa.md: Include constraints.md. | |
19372 | * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P. | |
19373 | (integer_store_memory_operand, ldil_cint_p): New functions. | |
19374 | * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare. | |
19375 | * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, | |
19376 | IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove. | |
19377 | * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove. | |
19378 | * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove. | |
19379 | ||
19380 | 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com> | |
19381 | ||
19382 | PR c/31339 | |
19383 | * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR, | |
19384 | case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR, | |
19385 | case POSTDECREMENT_EXPR>): Return the error_mark_node | |
19386 | if either the real or imaginary parts would an | |
19387 | error_mark_node. | |
19388 | ||
19389 | 2007-05-28 Daniel Berlin <dberlin@dberlin.org> | |
19390 | ||
19391 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA | |
19392 | name when we remove it from a call. | |
19393 | ||
19394 | 2007-05-28 Kazu Hirata <kazu@codesourcery.com> | |
19395 | ||
19396 | * targhooks.c (default_narrow_bitfield): Remove. | |
19397 | * targhooks.h: Remove the prototype for | |
19398 | default_narrow_bitfield. | |
19399 | ||
19400 | * langhooks-def.h: Remove the prototype for | |
19401 | hook_get_alias_set_0. | |
19402 | * langhooks.c (hook_get_alias_set_0): Remove. | |
19403 | ||
19404 | * global.c (EXECUTE_IF_CONFLICT): Remove. | |
19405 | ||
19406 | 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
19407 | ||
19408 | PR tree-opt/32100 | |
19409 | * fold-const.c (tree_expr_nonnegative_warnv_p): Don't | |
19410 | return true when truth_value_p is true and the type | |
19411 | is of signed:1. | |
19412 | ||
19413 | 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com> | |
19414 | ||
19415 | * doc/install.texi (Prerequisites): We no longer require Autoconf | |
19416 | 2.13 for the top-level. | |
19417 | ||
19418 | 2007-05-28 Uros Bizjak <ubizjak@gmail.com> | |
19419 | ||
19420 | * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned | |
19421 | memory access via x86_expand_vector_move_misalign() only for | |
19422 | TImode values on 32-bit targets. | |
19423 | ||
19424 | 2007-05-28 Razya Ladelsky <razya@il.ibm.com> | |
19425 | ||
19426 | * matrix-reorg.c: New file. Implement matrix flattening and | |
19427 | transposing optimization. | |
19428 | * tree-pass.h: Add matrix reorg pass. | |
19429 | * common.opt: Add fipa-mreorg flag. | |
19430 | * Makefile.in: Add matrix-reorg.c. | |
19431 | * passes.c: Add matrix reorg pass. | |
19432 | * varpool.c (add_new_static_var): New function. | |
19433 | * cgraph.h (add_new_static_var): Declare. | |
19434 | ||
19435 | 2007-05-27 Eric Christopher <echristo@apple.com> | |
19436 | ||
19437 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Update | |
19438 | sp_offset depending on stack size. Save r12 depending | |
19439 | on registers we're saving later. | |
19440 | (rs6000_emit_epilogue): Update sp_offset depending only | |
19441 | on stack size. | |
19442 | ||
19443 | 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz> | |
19444 | ||
19445 | * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. | |
19446 | * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto. | |
19447 | * ifcvt.c (if_convert): Ditto. | |
19448 | * tree-ssa-threadupdate.c (thread_block): Ditto. | |
19449 | (thread_through_all_blocks): Ditto. Assert that loops were analysed. | |
19450 | * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, | |
19451 | verify_loop_closed_ssa): Check number_of_loops instead of | |
19452 | current_loops. | |
19453 | * predict.c (tree_estimate_probability): Ditto. | |
19454 | * tree-if-conv.c (main_tree_if_conversion): Ditto. | |
19455 | * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. | |
19456 | * modulo-sched.c (sms_schedule): Ditto. | |
19457 | * tree-scalar-evolution.c (scev_const_prop): Ditto. | |
19458 | (scev_finalize): Do not do anything if scev analysis was not | |
19459 | initialized. | |
19460 | * cfgloopanal.c (mark_irreducible_loops): Do not check whether | |
19461 | current_loops == NULL. | |
19462 | (mark_loop_exit_edges): Check number_of_loops instead of current_loops. | |
19463 | * loop-init.c (loop_optimizer_init): Do not free current_loops when | |
19464 | there are no loops. | |
19465 | (loop_optimizer_finalize): Assert that loops were analyzed. | |
19466 | (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, | |
19467 | rtl_doloop): Check number_of_loops instead of current_loops. | |
19468 | * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether | |
19469 | current_loops == NULL. | |
19470 | (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch, | |
19471 | gate_tree_vectorize tree_linear_transform, check_data_deps, | |
19472 | tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, | |
19473 | tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts): | |
19474 | Check number_of_loops instead of current_loops. | |
19475 | (tree_ssa_loop_done): Do not check whether current_loops == NULL. | |
19476 | * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always | |
19477 | free loops if available. | |
19478 | (execute_pre): Do not pass do_fre to fini_pre. | |
19479 | ||
19480 | 2007-05-27 Tobias Burnus <burnus@net-b.de> | |
19481 | ||
19482 | PR middle-end/32083 | |
19483 | * real.c (mpfr_from_real): Fix sign of -Inf. | |
19484 | ||
19485 | 2007-05-27 H.J. Lu <hongjiu.lu@intel.com> | |
19486 | ||
19487 | * tree-vect-transform.c (vectorizable_conversion): Initialize | |
19488 | tree_code variables to ERROR_MARK. | |
19489 | (vectorizable_type_demotion): Likewise. | |
19490 | (vectorizable_type_promotion): Likewise. | |
19491 | ||
19492 | 2007-05-26 Uros Bizjak <ubizjak@gmail.com> | |
19493 | ||
19494 | PR target/32065 | |
19495 | * config/i386/i386.md (movti): Handle push operands via | |
19496 | ix86_expand_push(). | |
19497 | ||
19498 | 2007-05-26 Kazu Hirata <kazu@codesourcery.com> | |
19499 | ||
19500 | * basic-block.h: Remove the prototype for merge_seq_blocks. | |
19501 | * cfgcleanup.c (merge_seq_blocks): Remove. | |
19502 | ||
19503 | * tree-flow.h: Remove the prototype for is_aliased_with. | |
19504 | * tree-ssa-alias.c (is_aliased_with): Remove. | |
19505 | ||
19506 | 2007-05-26 H.J. Lu <hongjiu.lu@intel.com> | |
19507 | ||
19508 | * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New. | |
19509 | ||
19510 | * config/i386/i386.c (ix86_expand_sse4_unpack): New. | |
19511 | ||
19512 | * config/i386/sse.md (vec_unpacku_hi_v16qi): Call | |
19513 | ix86_expand_sse4_unpack if SSE4.1 is enabled. | |
19514 | (vec_unpacks_hi_v16qi): Likewise. | |
19515 | (vec_unpacku_lo_v16qi): Likewise. | |
19516 | (vec_unpacks_lo_v16qi): Likewise. | |
19517 | (vec_unpacku_hi_v8hi): Likewise. | |
19518 | (vec_unpacks_hi_v8hi): Likewise. | |
19519 | (vec_unpacku_lo_v8hi): Likewise. | |
19520 | (vec_unpacks_lo_v8hi): Likewise. | |
19521 | (vec_unpacku_hi_v4si): Likewise. | |
19522 | (vec_unpacks_hi_v4si): Likewise. | |
19523 | (vec_unpacku_lo_v4si): Likewise. | |
19524 | (vec_unpacks_lo_v4si): Likewise. | |
19525 | ||
19526 | 2007-05-26 Kazu Hirata <kazu@codesourcery.com> | |
19527 | ||
19528 | * c-typeck.c, config/arm/arm.c, config/darwin.c, | |
19529 | config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c, | |
19530 | omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and | |
19531 | follow spelling conventions in various | |
19532 | warning/error/diagnostic messages. | |
19533 | ||
19534 | * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c, | |
19535 | df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h, | |
19536 | fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h, | |
19537 | tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c, | |
19538 | tree-vrp.c: Fix comment typos. Follow spelling conventions. | |
19539 | * doc/tm.texi: Follow spelling conventions. | |
19540 | ||
19541 | 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
19542 | ||
19543 | PR tree-opt/32090 | |
19544 | * tree-ssa-forwprop.c | |
19545 | (forward_propagate_addr_into_variable_array_index): Remove | |
19546 | the lhs argument. Use the type of def_rhs instead of lhs. | |
19547 | (forward_propagate_addr_expr_1): Update use of | |
19548 | forward_propagate_addr_into_variable_array_index. | |
19549 | ||
19550 | 2007-05-25 Sandra Loosemore <sandra@codesourcery.com> | |
19551 | Nigel Stephens <nigel@mips.com> | |
19552 | ||
19553 | * config/mips/mips.c (mips_attribute_table): Add "near" and "far" | |
19554 | function attributes, "far" being an alias for "long_call". | |
19555 | (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes. | |
19556 | (mips_near_type_p, mips_far_type_p): New. | |
19557 | (mips_comp_type_attributes): New function to check that attributes | |
19558 | attached to a function type are compatible. | |
19559 | (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than | |
19560 | TARGET_LONG_CALLS when deciding whether we can do a direct sibcall | |
19561 | to the target function of the thunk. | |
19562 | (mips_encode_section_info): Check for "near" and "far" function | |
19563 | attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly. | |
19564 | ||
19565 | * config/mips/predicates.md (const_call_insn_operand): Test only | |
19566 | SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS. | |
19567 | ||
19568 | * doc/extend.texi (Function Attributes): Document MIPS "near" and | |
19569 | "far" attributes. | |
19570 | ||
19571 | * testsuite/gcc.target/mips/near-far-1.c: New test case. | |
19572 | * testsuite/gcc.target/mips/near-far-2.c: New test case. | |
19573 | * testsuite/gcc.target/mips/near-far-3.c: New test case. | |
19574 | * testsuite/gcc.target/mips/near-far-4.c: New test case. | |
19575 | ||
19576 | 2007-05-25 Eric Christopher <echristo@apple.com> | |
19577 | ||
19578 | * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp | |
19579 | to x86-darwin configurations. | |
19580 | * config/i386/t-darwin: Add softfp support. | |
19581 | * config/i386/t-darwin64: Ditto. | |
19582 | * config/i386/sfp-machine.h: If mach then don't use | |
19583 | aliasing, emit a stub to call. | |
19584 | ||
19585 | 2007-05-25 Kazu Hirata <kazu@codesourcery.com> | |
19586 | ||
19587 | * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c, | |
19588 | haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c, | |
19589 | tree-predcom.c, tree-ssa-alias-warnings.c, | |
19590 | tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix | |
19591 | comment typos. Follow spelling conventions. | |
19592 | * doc/cpp.texi, doc/invoke.texi: Fix typos. | |
19593 | ||
19594 | 2007-05-26 Uros Bizjak <ubizjak@gmail.com> | |
19595 | ||
19596 | PR target/32065 | |
19597 | * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of | |
19598 | constants into memory. Expand unaligned memory references for | |
19599 | SSE modes via x86_expand_vector_move_misalign() function. | |
19600 | ||
19601 | 2007-05-25 Uros Bizjak <ubizjak@gmail.com> | |
19602 | ||
19603 | * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate | |
19604 | "memory" attribute for "sseishft" type insn without operands[2]. | |
19605 | ||
19606 | 2007-05-25 Dirk Mueller <dmueller@suse.de> | |
19607 | Marcus Meissner <meissner@suse.de> | |
19608 | ||
19609 | * doc/extend.texi (alloc_size): New attribute. | |
19610 | * c-common.c (handle_alloc_size_attribute): New. | |
19611 | * tree-object-size.c (alloc_object_size): Use alloc_size | |
19612 | attribute, if available. | |
19613 | ||
19614 | 2007-05-25 H.J. Lu <hongjiu.lu@intel.com> | |
19615 | ||
19616 | * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it | |
19617 | with MASK_SSE2. | |
19618 | (__builtin_ia32_vec_ext_v2di): Likewise. | |
19619 | (__builtin_ia32_vec_ext_v4si): Likewise. | |
19620 | (__builtin_ia32_vec_ext_v8hi): Likewise. | |
19621 | (__builtin_ia32_vec_ext_v16qi): Likewise. | |
19622 | (__builtin_ia32_vec_set_v8hi): Likewise. | |
19623 | ||
19624 | 2007-05-25 H.J. Lu <hongjiu.lu@intel.com> | |
19625 | ||
19626 | * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift. | |
19627 | ||
19628 | 2007-05-25 Richard Sandiford <richard@codesourcery.com> | |
19629 | ||
19630 | * config/arm/arm-protos.h (arm_encode_call_attribute): Delete. | |
19631 | (arm_is_longcall_p): Rename to... | |
19632 | (arm_is_long_call_p): ...this. Take a single tree argument and | |
19633 | return a bool. | |
19634 | * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete. | |
19635 | (CUMULATIVE_ARGS): Remove call_cookie. | |
19636 | (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P) | |
19637 | (ENCODED_LONG_CALL_ATTR_P): Delete. | |
19638 | (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and | |
19639 | LONG_CALL_FLAG_CHAR cases. | |
19640 | (ARM_DECLARE_FUNCTION_SIZE): Delete. | |
19641 | * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use | |
19642 | ARM_DECLARE_FUNCTION_SIZE. | |
19643 | * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie. | |
19644 | (arm_function_arg): Return const0_rtx for VOIDmode arguments. | |
19645 | (arm_encode_call_attribute, current_file_function_operand): Delete. | |
19646 | (arm_function_in_section_p): New function. | |
19647 | (arm_is_longcall_p): Rename to... | |
19648 | (arm_is_long_call_p): ...this. Take the target function as a single | |
19649 | argument and return a bool. Do not rely on call cookies. Check | |
19650 | whether the target symbol is in the same section as the current | |
19651 | function, not just the same compilation unit. | |
19652 | (arm_function_ok_for_sibcall): Use arm_is_long_call_p. | |
19653 | (arm_encode_section_info): Don't encode a call type. | |
19654 | * config/arm/arm.md (call, call_value): Update calls to | |
19655 | arm_is_long(_)call_p. Simplify logic. | |
19656 | (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn): | |
19657 | Update calls to arm_is_long(_)call_p. | |
19658 | ||
19659 | 2007-05-25 Richard Guenther <rguenther@suse.de> | |
19660 | ||
19661 | PR tree-optimization/31982 | |
19662 | * tree-ssa-forwprop.c | |
19663 | (forward_propagate_addr_into_variable_array_index): Handle arrays | |
19664 | with element size one. | |
19665 | ||
19666 | 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
19667 | ||
19668 | * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. | |
19669 | (umulsi3_highpart): Likewise. | |
19670 | ||
19671 | 2007-05-24 Ian Lance Taylor <iant@google.com> | |
19672 | ||
19673 | PR rtl-optimization/32069 | |
19674 | * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx | |
19675 | is NULL. | |
19676 | ||
19677 | 2007-05-24 Ollie Wild <aaw@google.com> | |
19678 | ||
19679 | * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__ | |
19680 | description. | |
19681 | ||
19682 | 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk> | |
19683 | ||
19684 | * postreload-gcse.c (reg_changed_after_insn_p): New function. | |
19685 | (oprs_unchanged_p): Use it to check all registers in a REG. | |
19686 | (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE. | |
19687 | (reg_set_between_after_reload_p): Delete. | |
19688 | (reg_used_between_after_reload_p): Likewise. | |
19689 | (reg_set_or_used_since_bb_start): Likewise. | |
19690 | (eliminate_partially_redundant_load): Use reg_changed_after_insn_p | |
19691 | and reg_used_between_p instead of reg_set_or_used_since_bb_start. | |
19692 | Use reg_set_between_p instead of reg_set_between_after_reload_p. | |
19693 | * rtlanal.c (reg_set_p): Check whether REG overlaps | |
19694 | regs_invalidated_by_call, rather than just checking the | |
19695 | membership of REGNO (REG). | |
19696 | ||
19697 | 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz> | |
19698 | ||
19699 | * doc/passes.texi: Document predictive commoning. | |
19700 | * doc/invoke.texi (-fpredictive-commoning): Document. | |
19701 | * opts.c (decode_options): Enable flag_predictive_commoning on -O3. | |
19702 | * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow | |
19703 | adding indices to the generated name. | |
19704 | (schedule_sm): Pass 0 to get_lsm_tmp_name. | |
19705 | * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export. | |
19706 | * tree-pretty-print.c (op_symbol_1): Renamed to ... | |
19707 | (op_symbol_code): ... and exported. | |
19708 | (dump_omp_clause, op_symbol): Use op_symbol_code | |
19709 | instead of op_symbol_1. | |
19710 | * tree-pass.h (pass_predcom): Declare. | |
19711 | * timevar.def (TV_PREDCOM): New timevar. | |
19712 | * tree-ssa-loop.c (run_tree_predictive_commoning, | |
19713 | gate_tree_predictive_commoning, pass_predcom): New. | |
19714 | * tree-data-ref.c (find_data_references_in_loop): Find the | |
19715 | references in dominance order. | |
19716 | (canonicalize_base_object_address): Ensure that the result has | |
19717 | pointer type. | |
19718 | (dr_analyze_innermost): Export. | |
19719 | (create_data_ref): Code to fail for references with invariant | |
19720 | address moved ... | |
19721 | (find_data_references_in_stmt): ... here. | |
19722 | * tree-data-ref.h (dr_analyze_innermost): Declare. | |
19723 | * tree-affine.c: Include tree-gimple.h and hashtab.h. | |
19724 | (aff_combination_find_elt, name_expansion_hash, | |
19725 | name_expansion_eq, tree_to_aff_combination_expand, | |
19726 | double_int_constant_multiple_p, aff_combination_constant_multiple_p): | |
19727 | New functions. | |
19728 | * tree-affine.h (aff_combination_constant_multiple_p, | |
19729 | tree_to_aff_combination_expand): Declare. | |
19730 | * tree-predcom.c: New file. | |
19731 | * common.opt (fpredictive-commoning): New option. | |
19732 | * tree-flow.h (op_symbol_code, tree_predictive_commoning, | |
19733 | stmt_dominates_stmt_p, get_lsm_tmp_name): Declare. | |
19734 | * Makefile.in (tree-predcom.o): Add. | |
19735 | (tree-affine.o): Add TREE_GIMPLE_H dependency. | |
19736 | * passes.c (init_optimization_passes): Add dceloop after | |
19737 | copy propagation in loop optimizer. Add predictive commoning | |
19738 | to loop optimizer passes. | |
19739 | ||
19740 | 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> | |
19741 | ||
19742 | * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct | |
19743 | default hook. | |
19744 | ||
19745 | 2007-05-24 Jan Hubicka <jh@suse.cz> | |
19746 | ||
19747 | * gengenrtl.c (gendecl, gendef): Output the gens annotated for | |
19748 | statistics. | |
19749 | (genheader): Include statistics.h. | |
19750 | ||
19751 | * doc/invoke.texi (-fdump-unnumbered): Update docs when line number | |
19752 | notes are gone. | |
19753 | * print-rtl.c (flag_dump_unnumbered): Update comments. | |
19754 | (print_rtl): Fix my previous change. | |
19755 | * emit-rtl.c (emit_note_before, emit_note_after): Clear out note | |
19756 | specific data. | |
19757 | ||
19758 | 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz> | |
19759 | ||
19760 | PR middle-end/32018 | |
19761 | * tree-ssa-threadupdate.c (thread_through_loop_header): Use | |
19762 | set_loop_copy. | |
19763 | (thread_through_all_blocks): Call initialize_original_copy_tables | |
19764 | and free_original_copy_tables. | |
19765 | * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge): | |
19766 | Use set_loop_copy. | |
19767 | * tree-cfg.c (tree_duplicate_sese_region): Ditto. | |
19768 | * cfghooks.c (duplicate_block): Use get_loop_copy. | |
19769 | * cfg.c: Include cfgloop.h. | |
19770 | (loop_copy): New hash table. | |
19771 | (initialize_original_copy_tables): Initialize loop_copy table. | |
19772 | (free_original_copy_tables): Free loop_copy table. | |
19773 | (copy_original_table_clear, copy_original_table_set, | |
19774 | set_loop_copy, get_loop_copy): New functions. | |
19775 | (set_bb_original, set_bb_copy): Use copy_original_table_set. | |
19776 | * cfgloop.h (struct loop): Remove copy field. | |
19777 | * Makefile.in (cfg.o): Add CFGLOOP_H dependency. | |
19778 | * basic-block.h (set_loop_copy, get_loop_copy): Declare. | |
19779 | ||
19780 | 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> | |
19781 | ||
19782 | * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for | |
19783 | -msse/-msse2/-msse3. | |
19784 | ||
19785 | 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> | |
19786 | ||
19787 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark | |
19788 | __builtin_ia32_vec_set_v2di with MASK_64BIT. | |
19789 | ||
19790 | 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net> | |
19791 | ||
19792 | PR target/27067 | |
19793 | * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document. | |
19794 | * targhooks.h (default_mangle_decl_assembler_name): Declare | |
19795 | default hook. | |
19796 | * targhooks.c (default_mangle_decl_assembler_name): Define | |
19797 | default hook. | |
19798 | * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to | |
19799 | default hook. | |
19800 | * target.h (struct gcc_target): Add mangle_decl_assembler_name field. | |
19801 | * langhooks.c (lhd_set_decl_assembler_name): Call | |
19802 | targetm.mangle_decl_assembler_name for names with global scope. | |
19803 | ||
19804 | * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override | |
19805 | default. | |
19806 | (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME. | |
19807 | * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name): | |
19808 | Declare. | |
19809 | * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): | |
19810 | New. Factored out of i386_pe_encode_section_info. | |
19811 | (gen_stdcall_or_fastcall_suffix): Get name identifier as argument. | |
19812 | Move check for prior decoration of stdcall | |
19813 | symbols to i386_pe_encode_section_info. | |
19814 | (i386_pe_encode_section_info): Adjust call to | |
19815 | gen_stdcall_or_fastcall_suffix. Use | |
19816 | i386_pe_maybe_mangle_decl_assembler_name, if needed. | |
19817 | (i386_pe_mangle_decl_assembler_name): New. Wrap | |
19818 | i386_pe_maybe_mangle_decl_assembler_name. | |
19819 | ||
719bb4e3 | 19820 | 2007-05-16 Rafael Ávila de Espíndola <espindola@google.com> |
f13d199c RB |
19821 | |
19822 | * c-common.c (c_common_signed_or_unsigned_type): Delay the check for | |
19823 | INTEGRAL_TYPE_P and TYPE_UNSIGNED. | |
19824 | * langhooks.c (get_signed_or_unsigned_type): Don't check for | |
19825 | INTEGRAL_TYPE_P or TYPE_UNSIGNED. | |
19826 | (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and | |
19827 | TYPE_UNSIGNED. | |
19828 | ||
19829 | 2007-05-23 Sandra Loosemore <sandra@codesourcery.com> | |
19830 | Nigel Stephens <nigel@mips.com> | |
19831 | Richard Sandiford <richard@codesourcery.com> | |
19832 | ||
19833 | Fix up MIPS16 hard float and add support for complex. | |
19834 | ||
19835 | * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New. | |
19836 | (TARGET_SOFT_FLOAT_ABI): New. | |
19837 | (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and | |
19838 | __mips_soft_float to reflect the ABI in use, not whether the | |
19839 | FPU is directly accessible (e.g., in MIPS16 mode). | |
19840 | (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI. | |
19841 | (UNITS_PER_FPVALUE): Likewise. | |
19842 | ||
19843 | * config/mips/mips.c (mips_expand_call): Remove redundant | |
19844 | TARGET_MIPS16 check. | |
19845 | (mips_arg_regno): New. | |
19846 | (function_arg_advance): When setting bits in cum->fp_code for | |
19847 | MIPS16, don't subtract 1 from cum->arg_number, since it is now | |
19848 | zero-based. | |
19849 | (function_arg): Use mips_arg_regno. | |
19850 | (mips_return_mode_in_fpr_p): New. | |
19851 | (mips16_call_stub_mode_suffix): New. | |
19852 | (mips16_cfun_returns_in_fpr_p): New. | |
19853 | (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p. | |
19854 | (mips_output_function_prologue): Test mips16_hard_float, not | |
19855 | !TARGET_SOFT_FLOAT, to decide when a function stub is required. | |
19856 | (mips_expand_epilogue): Call MIPS16 helper routines to copy | |
19857 | return value into a floating-point register. | |
19858 | (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p. | |
19859 | (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p. | |
19860 | (mips16_fp_args): Handle MIPS32r2 ISA which supports | |
19861 | TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant | |
19862 | word of double arguments from or to the high bits of 64-bit | |
19863 | floating point registers. | |
19864 | (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl. | |
19865 | (mips16_fpret_double): New helper function. | |
19866 | (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add | |
19867 | support for complex modes. Fill in DECL_RESULT for stubdecl. | |
19868 | (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check. | |
19869 | ||
19870 | * config/mips/mips16.S | |
19871 | (RET, ARG1, ARG2): New. | |
19872 | (MERGE_GPRf, MERGE_GPRt): New. | |
19873 | (DELAYt, DELAYf): New. | |
19874 | (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New. | |
19875 | (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New. | |
19876 | (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New. | |
19877 | (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New. | |
19878 | (SFOP): Renamed to... | |
19879 | (OPSF3): This, and macro-ified. Updated all uses. | |
19880 | (SFOP2): Renamed to... | |
19881 | (OPSF2): This, and macro-ified. Updated all uses. | |
19882 | (SFCMP): Renamed to... | |
19883 | (CMPSF): This, and macro-ified. Updated all uses. | |
19884 | (SFREVCMP): Renamed to... | |
19885 | (REVCMPSF): This, and macro-ified. Updated all uses. | |
19886 | (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified. | |
19887 | (LDDBL1, LDDBL2, RETDBL): Deleted. | |
19888 | (DFOP): Renamed to... | |
19889 | (OPDF3): This, and macro-ified. Updated all uses. | |
19890 | (DFOP2): Renamed to... | |
19891 | (OPDF2): This, and macro-ified. Updated all uses. | |
19892 | (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified. | |
19893 | (DFCMP): Renamed to... | |
19894 | (CMPDF): This, and macro-ified. Updated all uses. | |
19895 | (DFREVCMP): Renamed to... | |
19896 | (REVCMPDF): This, and macro-ified. Updated all uses. | |
19897 | (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified. | |
19898 | (RET_FUNCTION): New. | |
19899 | (__mips16_ret_sf, __mips16_ret_df): Macro-ified. | |
19900 | (__mips16_ret_sc, __mips16_ret_dc): New. | |
19901 | (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2, | |
19902 | STUB_ARGS_6, STUB_ARGS_10): New. | |
19903 | (CALL_STUB_NO_RET): New. | |
19904 | (__mips16_call_stub_1): Macro-ified. | |
19905 | (__mips16_call_stub_5): Macro-ified. | |
19906 | (__mips16_call_stub_2): Macro-ified. | |
19907 | (__mips16_call_stub_6): Macro-ified. | |
19908 | (__mips16_call_stub_9): Macro-ified. | |
19909 | (__mips16_call_stub_10): Macro-ified. | |
19910 | (CALL_STUB_RET): New. | |
19911 | (__mips16_call_stub_sf_0): Macro-ified. | |
19912 | (__mips16_call_stub_sf_1): Macro-ified. | |
19913 | (__mips16_call_stub_sf_5): Macro-ified. | |
19914 | (__mips16_call_stub_sf_2): Macro-ified. | |
19915 | (__mips16_call_stub_sf_6): Macro-ified. | |
19916 | (__mips16_call_stub_sf_9): Macro-ified. | |
19917 | (__mips16_call_stub_sf_10): Macro-ified. | |
19918 | (__mips16_call_stub_df_0): Macro-ified. | |
19919 | (__mips16_call_stub_df_1): Macro-ified. | |
19920 | (__mips16_call_stub_df_5): Macro-ified. | |
19921 | (__mips16_call_stub_df_2): Macro-ified. | |
19922 | (__mips16_call_stub_df_6): Macro-ified. | |
19923 | (__mips16_call_stub_df_9): Macro-ified. | |
19924 | (__mips16_call_stub_df_10): Macro-ified. | |
19925 | (__mips16_call_stub_sc_0): New. | |
19926 | (__mips16_call_stub_sc_1): New. | |
19927 | (__mips16_call_stub_sc_5): New. | |
19928 | (__mips16_call_stub_sc_2): New. | |
19929 | (__mips16_call_stub_sc_6): New. | |
19930 | (__mips16_call_stub_sc_9): New. | |
19931 | (__mips16_call_stub_sc_10): New. | |
19932 | (__mips16_call_stub_dc_0): New. | |
19933 | (__mips16_call_stub_dc_1): New. | |
19934 | (__mips16_call_stub_dc_5): New. | |
19935 | (__mips16_call_stub_dc_2): New. | |
19936 | (__mips16_call_stub_dc_6): New. | |
19937 | (__mips16_call_stub_dc_9): New. | |
19938 | (__mips16_call_stub_dc_10): New. | |
19939 | ||
19940 | * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs. | |
19941 | * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise. | |
19942 | * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise. | |
19943 | ||
19944 | 2007-05-23 Ian Lance Taylor <iant@google.com> | |
19945 | ||
19946 | * doc/invoke.texi (Invoking GCC): Document that the order of the | |
19947 | -l option matters. | |
19948 | ||
19949 | 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn> | |
19950 | ||
19951 | PR target/30987 | |
19952 | * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove. | |
19953 | * config/score/predicate.md (const_pow2, const_npow2): Remove. | |
19954 | * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL | |
19955 | undef. | |
19956 | ||
19957 | PR target/30474 | |
19958 | * config/score/score.c (score_print_operand): Make sure that only | |
19959 | lower bits are used. | |
19960 | ||
19961 | 2007-05-22 Ian Lance Taylor <iant@google.com> | |
19962 | ||
19963 | * tree-vrp.c (avoid_overflow_infinity): New static function, | |
19964 | broken out of set_value_range_to_value. | |
19965 | (set_value_range_to_value): Call avoid_overflow_infinity. | |
19966 | (extract_range_from_assert): Likewise. | |
19967 | ||
19968 | 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
19969 | ||
19970 | PR middle-end/31095 | |
19971 | * builtins.c (expand_builtin_memmove_args): Strip nops that don't | |
19972 | change the type before looking for a COMPOUND_EXPR. | |
19973 | ||
19974 | 2007-05-22 Ian Lance Taylor <iant@google.com> | |
19975 | ||
19976 | * lower-subreg.c (decompose_multiword_subregs): If we change an | |
19977 | insn, call remove_retval_note on it. | |
19978 | ||
19979 | 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk> | |
19980 | ||
19981 | * regs.h (end_hard_regno): New function. | |
19982 | (END_HARD_REGNO, END_REGNO): New macros. | |
19983 | (add_to_hard_reg_set): New function. | |
19984 | (remove_from_hard_reg_set): Likewise. | |
19985 | (in_hard_reg_set_p): Likewise. | |
19986 | (overlaps_hard_reg_set_p): Likewise. | |
19987 | * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p. | |
19988 | (note_btr_set): Use END_HARD_REGNO. | |
19989 | * caller-save.c (setup_save_areas): Use end_hard_regno. | |
19990 | (mark_set_regs): Use END_HARD_REGNO. | |
19991 | (add_stored_regs): Use end_hard_regno. | |
19992 | (mark_referenced_regs): Use add_to_hard_reg_set. | |
19993 | * combine.c (update_table_tick): Use END_REGNO. | |
19994 | (record_value_for_reg): Likewise. | |
19995 | (record_dead_and_set_regs): Likewise. | |
19996 | (get_last_value_validate): Likewise. | |
19997 | (use_crosses_set_p): Likewise. | |
19998 | (reg_dead_at_p_1): Likewise. | |
19999 | (reg_dead_at_p): Likewise. | |
20000 | (mark_used_regs_combine): Use add_to_hard_reg_set. | |
20001 | (move_deaths): Use END_HARD_REGNO. | |
20002 | (reg_bitfield_target_p): Use end_hard_regno. | |
20003 | (distribute_notes): Use END_HARD_REGNO. | |
20004 | * cse.c (mention_regs): Use END_REGNO. | |
20005 | (insert): Use add_to_hard_reg_set. | |
20006 | (invalidate): Use END_HARD_REGNO. | |
20007 | (invalidate_for_call): Likewise. | |
20008 | (exp_equiv_p): Use END_REGNO. | |
20009 | (cse_insn): Likewise. | |
20010 | * cselib.c (cselib_invalidate_regno): Use end_hard_regno. | |
20011 | * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO. | |
20012 | * df-scan.c (df_ref_record): Use END_HARD_REGNO. | |
20013 | * function.c (keep_stack_depressed): Use end_hard_regno. | |
20014 | * global.c (global_alloc): Use end_hard_regno. | |
20015 | (global_conflicts): Use add_to_hard_reg_set instead of | |
20016 | mark_reg_live_nc. | |
20017 | (find_reg): Likewise. | |
20018 | (mark_reg_store): Likewise. | |
20019 | (mark_reg_conflicts): Likewise. | |
20020 | (mark_reg_death): Use remove_from_hard_reg_set. | |
20021 | (mark_reg_live_nc): Delete. | |
20022 | (set_preference): Use end_hard_regno. | |
20023 | * local-alloc.c (mark_life): Use add_to_hard_reg_set and | |
20024 | remove_from_hard_reg_set. | |
20025 | (post_mark_life): Use add_to_hard_reg_set. | |
20026 | * mode-switching.c (reg_dies): Use remove_from_hard_reg_set. | |
20027 | (reg_becomes_live): Use add_to_hard_reg_set. | |
20028 | * recog.c (reg_fits_class_p): Use in_hard_reg_set_p. | |
20029 | (peep2_find_free_register): Use add_to_hard_reg_set. | |
20030 | * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO. | |
20031 | * regclass.c (record_reg_classes): Use in_hard_reg_set_p. | |
20032 | * regrename.c (note_sets): Use add_to_hard_reg_set. | |
20033 | (clear_dead_regs): Use remove_from_hard_reg_set. | |
20034 | (regrename_optimize): Use add_to_hard_reg_set. | |
20035 | (find_oldest_value_reg): Use in_hard_reg_set_p. | |
20036 | * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno. | |
20037 | (hard_reg_set_here_p): Use end_hard_regno. | |
20038 | (decompose): Likewise. | |
20039 | (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO. | |
20040 | (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno. | |
20041 | * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set. | |
20042 | (mark_home_live): Use end_hard_regno. | |
20043 | (spill_hard_reg): Likewise. | |
20044 | (clear_reload_reg_in_use): Likewise. | |
20045 | * reorg.c (delete_prior_computation): Use END_REGNO. | |
20046 | * resource.c (update_live_status): Use END_HARD_REGNO. | |
20047 | (mark_referenced_resources): Use add_to_hard_reg_set. | |
20048 | (mark_set_resources): Likewise. | |
20049 | (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set. | |
20050 | * rtlanal.c (refers_to_regno_p): Use END_REGNO. | |
20051 | (reg_overlap_mentioned_p): Likewise. | |
20052 | (dead_or_set_p): Likewise. Use an exclusive upper loop bound. | |
20053 | (covers_regno_no_parallel_p): Use END_REGNO. | |
20054 | (find_regno_note): Likewise. | |
20055 | (find_reg_fusage): Use END_HARD_REGNO. | |
20056 | * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p. | |
20057 | * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno. | |
20058 | ||
20059 | 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk> | |
20060 | ||
20061 | * mode-switching.c (reg_dies): Change type of second argument to | |
20062 | "HARD_REG_SET *". | |
20063 | (optimize_mode_switching): Update accordingly. | |
20064 | ||
20065 | 2007-05-22 Richard Sandiford <richard@codesourcery.com> | |
20066 | ||
20067 | * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete | |
20068 | in favor of... | |
20069 | (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p) | |
20070 | (hard_reg_set_empty_p): ...these new functions. | |
20071 | * bt-load.c (choose_btr): Use hard_reg_subset_p instead of | |
20072 | GO_IF_HARD_REG_SUBSET. | |
20073 | * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p | |
20074 | instead of GO_IF_HARD_REG_EQUAL. | |
20075 | * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p | |
20076 | instead of GO_IF_HARD_REG_EQUAL. | |
20077 | * global.c (find_reg): Use hard_reg_set_empty_p instead of | |
20078 | GO_IF_HARD_REG_SUBSET. | |
20079 | (modify_reg_pav): Use hard_reg_set_empty_p instead of | |
20080 | GO_IF_HARD_REG_EQUAL. | |
20081 | * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead | |
20082 | of GO_IF_HARD_REG_SUBSET. | |
20083 | * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p | |
20084 | instead of GO_IF_HARD_REG_EQUAL. | |
20085 | * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use | |
20086 | hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET. | |
20087 | (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead | |
20088 | of GO_IF_HARD_REG_SUBSET, | |
20089 | * reload1.c (finish_spills): Use hard_reg_subset_p instead of | |
20090 | GO_IF_HARD_REG_SUBSET. | |
20091 | * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p | |
20092 | instead of GO_IF_HARD_REG_EQUAL. | |
20093 | * config/sh/sh.c (push_regs, calc_live_regs): Use | |
20094 | hard_reg_sets_intersect_p instead of hard_regs_intersect_p. | |
20095 | (hard_regs_intersect_p): Delete. | |
20096 | ||
20097 | 2007-05-22 Janis Johnson <janis187@us.ibm.com> | |
20098 | ||
20099 | * doc/sourcebuild.texi (Test Directives) Add dg-message. | |
20100 | ||
20101 | 2007-05-22 H.J. Lu <hongjiu.lu@intel.com> | |
20102 | Richard Henderson <rth@redhat.com> | |
20103 | ||
20104 | * config.gcc (i[34567]86-*-*): Add smmintrin.h to | |
20105 | extra_headers. | |
20106 | (x86_64-*-*): Likewise. | |
20107 | ||
20108 | * config/i386/i386-modes.def (V2QI): New. | |
20109 | ||
20110 | * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and | |
20111 | SSE4A. | |
20112 | (override_options): Support SSE4.1. | |
20113 | (IX86_BUILTIN_BLENDPD): New for SSE4.1. | |
20114 | (IX86_BUILTIN_BLENDPS): Likewise. | |
20115 | (IX86_BUILTIN_BLENDVPD): Likewise. | |
20116 | (IX86_BUILTIN_BLENDVPS): Likewise. | |
20117 | (IX86_BUILTIN_PBLENDVB128): Likewise. | |
20118 | (IX86_BUILTIN_PBLENDW128): Likewise. | |
20119 | (IX86_BUILTIN_DPPD): Likewise. | |
20120 | (IX86_BUILTIN_DPPS): Likewise. | |
20121 | (IX86_BUILTIN_INSERTPS128): Likewise. | |
20122 | (IX86_BUILTIN_MOVNTDQA): Likewise. | |
20123 | (IX86_BUILTIN_MPSADBW128): Likewise. | |
20124 | (IX86_BUILTIN_PACKUSDW128): Likewise. | |
20125 | (IX86_BUILTIN_PCMPEQQ): Likewise. | |
20126 | (IX86_BUILTIN_PHMINPOSUW128): Likewise. | |
20127 | (IX86_BUILTIN_PMAXSB128): Likewise. | |
20128 | (IX86_BUILTIN_PMAXSD128): Likewise. | |
20129 | (IX86_BUILTIN_PMAXUD128): Likewise. | |
20130 | (IX86_BUILTIN_PMAXUW128): Likewise. | |
20131 | (IX86_BUILTIN_PMINSB128): Likewise. | |
20132 | (IX86_BUILTIN_PMINSD128): Likewise. | |
20133 | (IX86_BUILTIN_PMINUD128): Likewise. | |
20134 | (IX86_BUILTIN_PMINUW128): Likewise. | |
20135 | (IX86_BUILTIN_PMOVSXBW128): Likewise. | |
20136 | (IX86_BUILTIN_PMOVSXBD128): Likewise. | |
20137 | (IX86_BUILTIN_PMOVSXBQ128): Likewise. | |
20138 | (IX86_BUILTIN_PMOVSXWD128): Likewise. | |
20139 | (IX86_BUILTIN_PMOVSXWQ128): Likewise. | |
20140 | (IX86_BUILTIN_PMOVSXDQ128): Likewise. | |
20141 | (IX86_BUILTIN_PMOVZXBW128): Likewise. | |
20142 | (IX86_BUILTIN_PMOVZXBD128): Likewise. | |
20143 | (IX86_BUILTIN_PMOVZXBQ128): Likewise. | |
20144 | (IX86_BUILTIN_PMOVZXWD128): Likewise. | |
20145 | (IX86_BUILTIN_PMOVZXWQ128): Likewise. | |
20146 | (IX86_BUILTIN_PMOVZXDQ128): Likewise. | |
20147 | (IX86_BUILTIN_PMULDQ128): Likewise. | |
20148 | (IX86_BUILTIN_PMULLD128): Likewise. | |
20149 | (IX86_BUILTIN_ROUNDPD): Likewise. | |
20150 | (IX86_BUILTIN_ROUNDPS): Likewise. | |
20151 | (IX86_BUILTIN_ROUNDSD): Likewise. | |
20152 | (IX86_BUILTIN_ROUNDSS): Likewise. | |
20153 | (IX86_BUILTIN_PTESTZ): Likewise. | |
20154 | (IX86_BUILTIN_PTESTC): Likewise. | |
20155 | (IX86_BUILTIN_PTESTNZC): Likewise. | |
20156 | (IX86_BUILTIN_VEC_EXT_V16QI): Likewise. | |
20157 | (IX86_BUILTIN_VEC_SET_V2DI): Likewise. | |
20158 | (IX86_BUILTIN_VEC_SET_V4SF): Likewise. | |
20159 | (IX86_BUILTIN_VEC_SET_V4SI): Likewise. | |
20160 | (IX86_BUILTIN_VEC_SET_V16QI): Likewise. | |
20161 | (bdesc_ptest): New. | |
20162 | (bdesc_sse_3arg): Likewise. | |
20163 | (bdesc_2arg): Likewise. | |
20164 | (bdesc_1arg): Likewise. | |
20165 | (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins | |
20166 | with 3 args. | |
20167 | (ix86_expand_sse_4_operands_builtin): New. | |
20168 | (ix86_expand_unop_builtin): Support 2 arg builtins with a constant | |
20169 | smaller than 8 bits as the 2nd arg. | |
20170 | (ix86_expand_sse_ptest): New. | |
20171 | (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins. | |
20172 | (ix86_expand_vector_set): Support SSE4.1. | |
20173 | (ix86_expand_vector_extract): Likewise. | |
20174 | ||
20175 | * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define | |
20176 | __SSE4_1__ for -msse4.1. | |
20177 | ||
20178 | * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1. | |
20179 | (UNSPEC_INSERTPS): Likewise. | |
20180 | (UNSPEC_DP): Likewise. | |
20181 | (UNSPEC_MOVNTDQA): Likewise. | |
20182 | (UNSPEC_MPSADBW): Likewise. | |
20183 | (UNSPEC_PHMINPOSUW): Likewise. | |
20184 | (UNSPEC_PTEST): Likewise. | |
20185 | (UNSPEC_ROUNDP): Likewise. | |
20186 | (UNSPEC_ROUNDS): Likewise. | |
20187 | ||
20188 | * config/i386/i386.opt (msse4.1): New for SSE4.1. | |
20189 | ||
20190 | * config/i386/predicates.md (const_pow2_1_to_2_operand): New. | |
20191 | (const_pow2_1_to_32768_operand): Likewise. | |
20192 | ||
20193 | * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header | |
20194 | file. | |
20195 | ||
20196 | * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for | |
20197 | SSE4.1. | |
20198 | (sse4_1_insertps): Likewise. | |
20199 | (*sse4_1_extractps): Likewise. | |
20200 | (sse4_1_ptest): Likewise. | |
20201 | (sse4_1_mulv2siv2di3): Likewise. | |
20202 | (*sse4_1_mulv4si3): Likewise. | |
20203 | (*sse4_1_smax<mode>3): Likewise. | |
20204 | (*sse4_1_umax<mode>3): Likewise. | |
20205 | (*sse4_1_smin<mode>3): Likewise. | |
20206 | (*sse4_1_umin<mode>3): Likewise. | |
20207 | (sse4_1_eqv2di3): Likewise. | |
20208 | (*sse4_1_pinsrb): Likewise. | |
20209 | (*sse4_1_pinsrd): Likewise. | |
20210 | (*sse4_1_pinsrq): Likewise. | |
20211 | (*sse4_1_pextrb): Likewise. | |
20212 | (*sse4_1_pextrb_memory): Likewise. | |
20213 | (*sse4_1_pextrw_memory): Likewise. | |
20214 | (*sse4_1_pextrq): Likewise. | |
20215 | (sse4_1_blendpd): Likewise. | |
20216 | (sse4_1_blendps): Likewise. | |
20217 | (sse4_1_blendvpd): Likewise. | |
20218 | (sse4_1_blendvps): Likewise. | |
20219 | (sse4_1_dppd): Likewise. | |
20220 | (sse4_1_dpps): Likewise. | |
20221 | (sse4_1_movntdqa): Likewise. | |
20222 | (sse4_1_mpsadbw): Likewise. | |
20223 | (sse4_1_packusdw): Likewise. | |
20224 | (sse4_1_pblendvb): Likewise. | |
20225 | (sse4_1_pblendw): Likewise. | |
20226 | (sse4_1_phminposuw): Likewise. | |
20227 | (sse4_1_extendv8qiv8hi2): Likewise. | |
20228 | (*sse4_1_extendv8qiv8hi2): Likewise. | |
20229 | (sse4_1_extendv4qiv4si2): Likewise. | |
20230 | (*sse4_1_extendv4qiv4si2): Likewise. | |
20231 | (sse4_1_extendv2qiv2di2): Likewise. | |
20232 | (*sse4_1_extendv2qiv2di2): Likewise. | |
20233 | (sse4_1_extendv4hiv4si2): Likewise. | |
20234 | (*sse4_1_extendv4hiv4si2): Likewise. | |
20235 | (sse4_1_extendv2hiv2di2): Likewise. | |
20236 | (*sse4_1_extendv2hiv2di2): Likewise. | |
20237 | (sse4_1_extendv2siv2di2): Likewise. | |
20238 | (*sse4_1_extendv2siv2di2): Likewise. | |
20239 | (sse4_1_zero_extendv8qiv8hi2): Likewise. | |
20240 | (*sse4_1_zero_extendv8qiv8hi2): Likewise. | |
20241 | (sse4_1_zero_extendv4qiv4si2): Likewise. | |
20242 | (*sse4_1_zero_extendv4qiv4si2): Likewise. | |
20243 | (sse4_1_zero_extendv2qiv2di2): Likewise. | |
20244 | (*sse4_1_zero_extendv2qiv2di2): Likewise. | |
20245 | (sse4_1_zero_extendv4hiv4si2): Likewise. | |
20246 | (*sse4_1_zero_extendv4hiv4si2): Likewise. | |
20247 | (sse4_1_zero_extendv2hiv2di2): Likewise. | |
20248 | (*sse4_1_zero_extendv2hiv2di2): Likewise. | |
20249 | (sse4_1_zero_extendv2siv2di2): Likewise. | |
20250 | (*sse4_1_zero_extendv2siv2di2): Likewise. | |
20251 | (sse4_1_roundpd): Likewise. | |
20252 | (sse4_1_roundps): Likewise. | |
20253 | (sse4_1_roundsd): Likewise. | |
20254 | (sse4_1_roundss): Likewise. | |
20255 | (mulv4si3): Don't expand for SSE4.1. | |
20256 | (smax<mode>3): Likewise. | |
20257 | (umaxv4si3): Likewise. | |
20258 | (uminv16qi3): Likewise. | |
20259 | (umin<mode>3): Likewise. | |
20260 | (umaxv8hi3): Rewrite. Only enabled for SSE4.1. | |
20261 | ||
20262 | * doc/extend.texi: Document SSE4.1 built-in functions. | |
20263 | ||
20264 | * doc/invoke.texi: Document -msse4.1. | |
20265 | ||
20266 | 2007-05-22 Nathan Sidwell <nathan@codesourcery.com> | |
20267 | ||
20268 | * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec. | |
20269 | * config/m68k/m68k-none.h (ASM_SPEC): Don't override here. | |
20270 | * config/m68k/m68k.h (ASM_PCREL_SPEC): New. | |
20271 | (ASM_SPEC): Add asm_pcrel_spec. | |
20272 | (EXTRA_SPECS): Add asm_pcrel_spec. | |
20273 | ||
20274 | 2007-05-21 David Daney <ddaney@avtrex.com> | |
20275 | ||
20276 | * doc/install.texi (Building a cross compiler): Add requirements | |
20277 | for Java cross compiler. | |
20278 | ||
20279 | 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
20280 | ||
20281 | PR middle-end/31995 | |
20282 | * tree-chrec.c (evolution_function_is_affine_multivariate_p): | |
20283 | Add loopno argument. Use evolution_function_is_invariant_rec_p | |
20284 | instead of evolution_function_is_constant_p. | |
20285 | Update calls to evolution_function_is_affine_multivariate_p. | |
20286 | * tree-chrec.h (evolution_function_is_affine_multivariate_p): | |
20287 | Add loopno argument. | |
20288 | * tree-scalar-evolution.c (gather_chrec_stats): Call | |
20289 | evolution_function_is_affine_multivariate_p with a loop | |
20290 | number of 0. | |
20291 | * tree-data-ref.c (analyze_miv_subscript): Likewise. | |
20292 | (analyze_overlapping_iterations): Likewise. | |
20293 | (access_functions_are_affine_or_constant_p): Likewise. | |
20294 | (build_classic_dist_vector_1): If the access functions | |
20295 | are equal, don't do anything. | |
20296 | ||
20297 | 2007-05-21 Paolo Bonzini <bonzini@gnu.org> | |
20298 | Paolo Carlini <pcarlini@suse.de> | |
20299 | Uros Bizjak <ubizjak@gmail.com> | |
20300 | ||
20301 | * c-cppbuiltin.c (c_cpp_builtins): Define | |
20302 | __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, | |
20303 | __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, | |
20304 | __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate. | |
20305 | * doc/cpp.texi ([Standard Predefined Macros]): Document. | |
20306 | ||
20307 | 2007-05-21 Mike Stump <mrs@apple.com> | |
20308 | ||
20309 | * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil | |
20310 | handling as well. | |
20311 | * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. | |
20312 | ||
20313 | 2007-05-21 Uros Bizjak <ubizjak@gmail.com> | |
20314 | ||
20315 | * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro | |
20316 | implementation if __OPTIMIZE__ is not defined. | |
20317 | (_mm_alignr_pi8): Ditto. | |
20318 | * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. | |
20319 | (_mm_inserti_si64): Ditto. | |
20320 | * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. | |
20321 | (_mm_slli_epi16): Ditto. | |
20322 | (_mm_slli_epi32): Ditto. | |
20323 | (_mm_slli_epi64): Ditto. | |
20324 | (_mm_srai_epi16): Ditto. | |
20325 | (_mm_srai_epi32): Ditto. | |
20326 | (_mm_srli_si128): Ditto. | |
20327 | (_mm_slli_si128): Ditto. | |
20328 | (_mm_srli_epi16): Ditto. | |
20329 | (_mm_srli_epi32): Ditto. | |
20330 | (_mm_srli_epi64): Ditto. | |
20331 | (_mm_extract_epi16): Ditto. | |
20332 | (_mm_insert_epi16): Ditto. | |
20333 | (_mm_shufflehi_epi16): Ditto. | |
20334 | (_mm_shufflelo_epi16): Ditto. | |
20335 | (_mm_shuffle_epi32): Ditto. | |
20336 | * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto. | |
20337 | (_m_pextrw): Ditto. | |
20338 | (_mm_insert_pi16): Ditto. | |
20339 | (_m_pinsrw): Ditto. | |
20340 | (_mm_shuffle_pi16): Ditto. | |
20341 | (_m_pshufw): Ditto. | |
20342 | (_mm_shufle_ps): Ditto. | |
20343 | (_mm_prefetch): Ditto. | |
20344 | ||
20345 | 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com> | |
20346 | ||
20347 | * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed. | |
20348 | * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed. | |
20349 | * real.c (encode_i370_single, decode_i370_single, | |
20350 | encode_i370_double, decode_i370_double): Functions removed. | |
20351 | (i370_single_format, i370_double_format): Initializations removed. | |
20352 | (real_maxval, round_for_format, exact_real_truncate, significand_size): | |
20353 | Consider the log2_b field to always be one. | |
20354 | (ieee_single_format, mips_single_format, coldfire_single_format, | |
20355 | ieee_double_format, mips_double_format, coldfire_double_format, | |
20356 | ieee_extended_motorola_format, ieee_extended_intel_96_format, | |
20357 | ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, | |
20358 | ibm_extended_format, mips_extended_format, ieee_quad_format, | |
20359 | mips_quad_format, vax_f_format, vax_d_format, vax_g_format, | |
20360 | decimal_single_format, decimal_double_format, decimal_quad_format, | |
20361 | c4x_single_format, c4x_extended_format, real_internal_format): Remove | |
20362 | initialization of log2_b. | |
20363 | * real.h (i370_single_format, i370_double_format): Declarations | |
20364 | removed. | |
20365 | * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b | |
20366 | field to always be one. | |
20367 | ||
20368 | 2007-05-21 Andreas Schwab <schwab@suse.de> | |
20369 | ||
20370 | * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of | |
20371 | NOTE_INSN_BASIC_BLOCK_P. | |
20372 | (process_for_unwind_directive): Likewise. | |
20373 | ||
20374 | 2007-05-21 Nathan Sidwell <nathan@codesourcery.com> | |
20375 | ||
20376 | * builtins.c (expand_builtin_setjmp_setup): Update comment. | |
20377 | * function.h (struct function): Move va_list_gpr_size, | |
20378 | va_list_fpr_size, function_frequency to front of bitfields. Add | |
20379 | calls_unwind_init. | |
20380 | (current_function_calls_unwind_init): New. | |
20381 | * except.c (expand_builtin_unwind_init): Set | |
20382 | current_function_calls_unwind_init not | |
20383 | current_function_has_nonlocal_label. | |
20384 | * reload1.c (has_nonexceptional_receiver): New. | |
20385 | (reload): Use it and current_function_calls_unwind_init to | |
20386 | determine whether call-saved regs must be saved. | |
20387 | ||
20388 | 2007-05-20 Jan Hubicka <jh@suse.cz> | |
20389 | ||
20390 | * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of | |
20391 | NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. | |
20392 | * ddg.c (create_ddg): LIkewise. | |
20393 | * final.c (final): Remove hunk moving line number notes around since | |
20394 | they are no longer present at this stage. | |
20395 | (final_scan_insn): Use NOTE_KIND instead of | |
20396 | NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. | |
20397 | (output_asm_label): Likewise. | |
20398 | * reorg.c (dbr_schedule): Likewise. | |
20399 | * haifa-sched.c (unlink_other_notes): Likewise. | |
20400 | * mode-switching.c (optimize_mode_switching): Likewise. | |
20401 | * graph.c (start_bb): Likewise. | |
20402 | * rtl.def (NOTE): Update description. | |
20403 | * jump.c (squeeze_notes): Delete. | |
20404 | (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use | |
20405 | NOTE_INSN_BASIC_BLOCK_P when possible. | |
20406 | * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes. | |
20407 | * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of | |
20408 | NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. | |
20409 | (dwarf2out_var_location): Likewise. | |
20410 | * cfgbuild.c (make_edges): Likewise. | |
20411 | (find_basic_blocks_1): Likewise. | |
20412 | * function.c (reorder_blocks_1): Likewise. | |
20413 | (epilogue_done): Likewise. | |
20414 | (reposition_prologue_and_epilogue_notes): Likewise. | |
20415 | * print-rtl.c (print_rtx): Likewise; drop code for printing | |
20416 | line number notes. | |
20417 | (print_rtl): Likewise. | |
20418 | (print_rtl_single): Likewise. | |
20419 | * gcse.c (insert_insn_start_bb): Likewise. | |
20420 | * alias.c (init_alias_analysis): Likewise. | |
20421 | * calls.c (fixup_tail_calls): Likewise. | |
20422 | * except.c (sjlj_emit_function_enter): Likewise. | |
20423 | * emit-rtl.c (add_insn_after): Likeiwse. | |
20424 | (emit_label_before): Likewise. | |
20425 | (emit_label_after): Likewise. | |
20426 | (emit_note_before, emit_note_after, emit_note): Update | |
20427 | parameter to be enum insn_note; do not deal with source | |
20428 | files. | |
20429 | * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): | |
20430 | Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P | |
20431 | when possible. | |
20432 | (merge_blocks_move_successor_nojumps): Simplify now when | |
20433 | we don't have BLOCK notes. | |
20434 | (try_optimize_cfg): Likewise. | |
20435 | * cfglayout.c (skip_insns_after_block): Likewise. | |
20436 | (record_effective_endpoints): Likewise. | |
20437 | (duplicate_insn_chain): Likewise. | |
20438 | * varasm.c (output_constant_pool_1): Likewise. | |
20439 | * sched-deps.c (sched_analyze): Likewise. | |
20440 | * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS): | |
20441 | Exterminate. | |
20442 | (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone. | |
20443 | * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate. | |
20444 | (SET_INSN_DELETED): Simplify. | |
20445 | (NOTE_LINE_NUMBER): Exterminate. | |
20446 | (NOTE_LINE_KIND): New. | |
20447 | (NOTE_INSN_BASIC_BLOCK_P): Update. | |
20448 | (enum insn_note): Simplify. | |
20449 | (GET_NOTE_INSN_NAME) Simplify. | |
20450 | (emit_note_before, emit_note_after, emit_note): Update prototype. | |
20451 | (squeeze_notes): Remove. | |
20452 | * sched-int.h (NOTE_NOT_BB_P): Update. | |
20453 | * resource.c (mark_target_live_regs): Update. | |
20454 | * sched-rgn.c (debug_dependencies): Update. | |
20455 | * sched-vis.c (print_insn): Update. | |
20456 | * config/alpha/alpha.c (alpha_handle_trap_shadows): Update. | |
20457 | * config/i386/i386.c (ix86_output_function_epilogue): Update. | |
20458 | * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0. | |
20459 | (TARGET_ADJUST_UNROLL_MAX): Likewise. | |
20460 | (split_branches): Update. | |
20461 | (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc | |
20462 | 4.0.0. | |
20463 | (sh_adjust_unroll_max): Exterminate. | |
20464 | * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED. | |
20465 | * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise. | |
20466 | (m68hc11_reorg): Likewise. | |
20467 | * config/ia64/ia64.c (emit_insn_group_barriers): Update. | |
20468 | (emit_predicate_relation_info): Update. | |
20469 | (process_for_unwind_directive): Update. | |
20470 | * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update. | |
20471 | (output_call): Update. | |
20472 | * config/pa/pa.c (output_lbranch): Update. | |
20473 | (output_millicode_call): Update. | |
20474 | (output_call): Update. | |
20475 | (pa_combine_instructions): Update. | |
20476 | * config/mips/mips.c (mips16_gp_pseudo_reg): Update. | |
20477 | * config/bfin/bfin.c (gen_one_bundle): Update. | |
20478 | * cfgrtl.c (can_delete_note_p): Update. | |
20479 | (delete_insn): Update. | |
20480 | (rtl_merge_blocks): Update. | |
20481 | (commit_one_edge_insertion): Update. | |
20482 | (rtl_verify_flow_info): Update. | |
20483 | * stmt.c (expand_case): Do not call squeeze_notes. | |
20484 | ||
20485 | 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
20486 | ||
20487 | PR middle-end/7651 | |
20488 | PR c++/11856 | |
20489 | PR c/12963 | |
20490 | PR c/23587 | |
20491 | PR other/29694 | |
20492 | * c.opt (Wtype-limits): New. | |
20493 | * doc/invoke.texi (Wtype-limits): Document it. | |
20494 | (Wextra): Enabled by -Wextra. | |
20495 | * c-opts.c (c_common_post_options): Enabled by -Wextra. | |
20496 | * c-common.c (shorten_compare): Warn with Wtype-limits. | |
20497 | ||
20498 | 2007-05-20 Uros Bizjak <ubizjak@gmail.com> | |
20499 | ||
20500 | * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always | |
20501 | inlined function, not as a macro. | |
20502 | (_mm_alignr_pi8): Ditto. | |
20503 | * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. | |
20504 | (_mm_inserti_si64): Ditto. | |
20505 | * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. | |
20506 | (_mm_extract_epi16): Ditto. | |
20507 | (_mm_insert_epi16): Ditto. | |
20508 | (_mm_shufflehi_epi16): Ditto. | |
20509 | (_mm_shufflelo_epi16): Ditto. | |
20510 | (_mm_shuffle_epi32): Ditto. | |
20511 | * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant. | |
20512 | * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to | |
20513 | all functions. | |
20514 | (_m_from_float): Add __extension__ to conversion. Use 0.0f for | |
20515 | float constant. | |
20516 | (_m_to_float): Use C89 compatible assignment. | |
20517 | ||
20518 | 2007-05-20 Martin Michlmayr <tbm@cyrius.com> | |
20519 | ||
20520 | PR target/32007 | |
20521 | * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines. | |
20522 | ||
20523 | 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
20524 | ||
20525 | PR middle-end/7651 | |
20526 | * doc/invoke.texi (Wreturn-type): Complete description. | |
20527 | (Wextra): Delete item about return-type warning. | |
20528 | * c-decl.c: Delete redundant Wextra warning. | |
20529 | ||
20530 | 2007-05-20 Uros Bizjak <ubizjak@gmail.com> | |
20531 | ||
20532 | PR target/31585 | |
20533 | * config/i386/pmmintrin.h: Do not include xmmintrin.h | |
20534 | * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always | |
20535 | inlined function, not as a macro. | |
20536 | (_mm_prefetch): Ditto. | |
20537 | (_m_pextrw): Ditto. | |
20538 | (_mm_insert_pi16): Ditto. | |
20539 | (_m_pinsrw): Ditto. | |
20540 | (_mm_shuffle_pi16): Ditto. Add const to __N argument. | |
20541 | (_m_pshufw): Ditto. Add const to __N argument. | |
20542 | (_mm_shufle_ps): Ditto. Add const to __mask argument. | |
20543 | * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument. | |
20544 | (_mm_slli_epi32): Ditto. | |
20545 | (_mm_srli_si128): Implement as always inlined function, not as a | |
20546 | macro. Add __inline to function declaration. | |
20547 | (_mm_slli_si128): Ditto. | |
20548 | ||
20549 | 2007-05-19 Uros Bizjak <ubizjak@gmail.com> | |
20550 | ||
20551 | * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM, | |
20552 | FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT): | |
20553 | New constants. | |
20554 | (struct fenv): New structure. | |
20555 | (FP_HANDLE_EXCEPTIONS): New define. | |
20556 | (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants. | |
20557 | (_FP_DECL_EXP): New define. | |
20558 | (FP_INIT_ROUNDMODE): New define. | |
20559 | (FP_ROUNDMODE): New define. | |
20560 | ||
20561 | 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
20562 | ||
20563 | * doc/invoke.texi (Warning Options): Add -Wconversion-sign. | |
20564 | (Wconversion): Update description. | |
20565 | (Wconversion-sign): New. | |
20566 | * c.opt (Wconversion-sign): New. | |
20567 | * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign | |
20568 | means disabled for C++. Otherwise, take the status of Wconversion. | |
20569 | * c-common.c (conversion_warning): Warn with either Wconversion or | |
20570 | Wconversion-sign. | |
20571 | (warnings_for_convert_and_check): Conditions are already checked by | |
20572 | conversion_warning. | |
20573 | (convert_and_check): Don't check warnings if the conversion failed. | |
20574 | ||
20575 | 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net> | |
20576 | Anatoly Sokolov <aesok@dol.ru> | |
20577 | ||
20578 | * config/avr/avr-protos.h (expand_prologue, expand_epilogue, | |
20579 | avr_epilogue_uses) : Add declaration. | |
20580 | * config/avr/predicates.md (avr_sp_immediate_operand): New predicate. | |
20581 | * config/avr/constraints.md (R): New constraint. | |
20582 | config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI, | |
20583 | UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants. | |
20584 | (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ... | |
20585 | (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns. | |
20586 | (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt, | |
20587 | call_prologue_saves, epilogue_restores, return_from_epilogue, | |
20588 | return_from_main_epilogue, return_from_interrupt_epilogue, | |
20589 | return_from_naked_epilogue, prologue, epilogue): New patterns. | |
20590 | (jump): Handle symbol reference. | |
20591 | * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr, | |
20592 | avr_output_function_prologue, avr_output_function_epilogue): Remove | |
20593 | functions. | |
20594 | (avr_init_machine_status, expand_prologue, expand_epilogue, | |
20595 | avr_asm_function_end_prologue, avr_epilogue_uses, | |
20596 | avr_asm_function_begin_epilogue): New functions. | |
20597 | (prologue_size, epilogue_size, jump_tables_size): Remove global | |
20598 | variables. | |
20599 | (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove. | |
20600 | (TARGET_ASM_FUNCTION_END_PROLOGUE): Define. | |
20601 | (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define. | |
20602 | (avr_override_options): Initialise init_machine_status. | |
20603 | (output_movhi): Handle all stack pointer loads. | |
20604 | (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address. | |
20605 | (avr_output_addr_vec_elt): Do not use variable jump_tables_size. | |
20606 | * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New. | |
20607 | (EPILOGUE_USES) Redefine. | |
20608 | (machine_function) Declare. | |
20609 | ||
20610 | 2007-05-19 Richard Sandiford <richard@codesourcery.com> | |
20611 | ||
20612 | * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment. | |
20613 | Use a single return statement. | |
20614 | ||
20615 | 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
20616 | ||
20617 | PR middle-end/30250 | |
20618 | * builtins.c (do_mpfr_lgamma_r): New. | |
20619 | (fold_builtin_2): Handle builtin gamma_r/lgamma_r. | |
20620 | * tree.h (CASE_FLT_FN_REENT): New. | |
20621 | ||
20622 | 2007-05-18 Geoffrey Keating <geoffk@apple.com> | |
20623 | ||
20624 | * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. | |
20625 | (output_die): Use 'unsigned long' with %x. | |
20626 | * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and | |
20627 | HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. | |
20628 | * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. | |
20629 | ||
20630 | * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP. | |
20631 | ||
20632 | 2007-05-18 H.J. Lu <hongjiu.lu@intel.com> | |
20633 | ||
20634 | PR target/31989 | |
20635 | PR target/31681 | |
20636 | PR target/31666 | |
20637 | * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to | |
20638 | true if function has no argument. | |
20639 | ||
20640 | 2007-05-18 DJ Delorie <dj@redhat.com> | |
20641 | ||
20642 | * config/mips/mips.c (mips_offset_within_alignment_p): New. | |
20643 | (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols. | |
20644 | ||
20645 | 2007-05-18 Uros Bizjak <ubizjak@gmail.com> | |
20646 | ||
20647 | * longlong.h (__x86_64__): Add definitions for add_ssaaaa, | |
20648 | sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and | |
20649 | count_trailing_zeros. | |
20650 | (__i386__): Implement count_leading_zeros using __builtin_clz(). | |
20651 | Implement count_trailing_zeros usign __builtin_ctz(). | |
20652 | ||
20653 | 2007-05-18 Richard Sandiford <richard@codesourcery.com> | |
20654 | ||
20655 | * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine. | |
20656 | ||
20657 | 2007-05-18 Uros Bizjak <ubizjak@gmail.com> | |
20658 | ||
20659 | PR middle-end/31344 | |
20660 | * expr.c (emit_move_change_mode): Change mode of push operands here. | |
20661 | ||
20662 | 2007-05-17 Ian Lance Taylor <iant@google.com> | |
20663 | ||
20664 | PR tree-optimization/31953 | |
20665 | * tree-vrp.c (set_value_range_to_value): Add equiv parameter. | |
20666 | Change all callers. | |
20667 | (set_value_range_to_null): Call set_value_range_to_value. | |
20668 | (extract_range_from_comparison): Likewise. | |
20669 | ||
20670 | 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
20671 | ||
20672 | * toplev.c (print_version): Output GMP/MPFR version info. | |
20673 | ||
20674 | * builtins.c (CASE_MATHFN_REENT): New macro. | |
20675 | (mathfn_built_in): Use it. | |
20676 | * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R, | |
20677 | BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R, | |
20678 | BUILT_IN_LGAMMAL_R): New. | |
20679 | * doc/extend.texi: Document new builtins. | |
20680 | ||
20681 | PR middle-end/31796 | |
20682 | * builtins.c (do_mpfr_remquo): New. | |
20683 | (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER. | |
20684 | (fold_builtin_3): Handle BUILT_IN_REMQUO. | |
20685 | ||
20686 | PR middle-end/30251 | |
20687 | * builtins.c (fold_builtin_1): Handle y0, y1. | |
20688 | (fold_builtin_2): Handle yn. | |
20689 | ||
20690 | PR middle-end/30251 | |
20691 | * builtins.c (do_mpfr_bessel_n): New. | |
20692 | (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1. | |
20693 | (fold_builtin_2): Handle BUILT_IN_JN. | |
20694 | ||
20695 | 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net> | |
20696 | ||
20697 | PR target/31965 | |
20698 | * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as | |
20699 | TYPE_PRECISION (intmax_type_node). | |
20700 | ||
20701 | 2007-05-17 Steve Ellcey <sje@cup.hp.com> | |
20702 | ||
20703 | PR target/31850 | |
20704 | * reload.c (subst_reloads): Remove checking. | |
20705 | ||
20706 | 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr> | |
20707 | ||
20708 | PR rtl-optimization/31691 | |
20709 | * combine.c (simplify_set): Build a new src pattern instead of | |
20710 | substituting its operands in the COMPARE case. | |
20711 | ||
20712 | 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz> | |
20713 | ||
20714 | * tree-vrp.c (finalize_jump_threads): Do not care about dominance info. | |
20715 | (execute_vrp): Preserve loops through jump threading. | |
20716 | * tree-ssa-threadupdate.c (thread_single_edge, | |
20717 | dbds_continue_enumeration_p, determine_bb_domination_status, | |
20718 | thread_through_loop_header): New functions. | |
20719 | (create_edge_and_update_destination_phis, | |
20720 | create_edge_and_update_destination_phis): Set loops for the new blocks. | |
20721 | (prune_undesirable_thread_requests): Removed. | |
20722 | (redirect_edges): Do not pretend that redirect_edge_and_branch can | |
20723 | create new blocks. | |
20724 | (thread_block): Do not call prune_undesirable_thread_requests. | |
20725 | Update loops. | |
20726 | (mark_threaded_blocks): Select edges to thread here. | |
20727 | (thread_through_all_blocks): Take may_peel_loop_headers argument. | |
20728 | Thread edges through loop headers independently. | |
20729 | * cfgloopmanip.c (create_preheader, mfb_keep_just): Export. | |
20730 | * tree-pass.h (TODO_mark_first_instance): New. | |
20731 | (first_pass_instance): Declare. | |
20732 | * cfghooks.c (duplicate_block): Put the block to the original loop | |
20733 | if copy is not specified. | |
20734 | * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through | |
20735 | jump threading. Pass may_peel_loop_headers to | |
20736 | thread_through_all_blocks according to first_pass_instance. | |
20737 | * cfgloop.h (create_preheader): Declare. | |
20738 | * tree-flow.h (thread_through_all_blocks): Declaration changed. | |
20739 | * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare. | |
20740 | * passes.c (first_pass_instance): New variable. | |
20741 | (next_pass_1): Set TODO_mark_first_instance. | |
20742 | (execute_todo): Set first_pass_instance. | |
20743 | ||
20744 | 2007-05-17 Uros Bizjak <ubizjak@gmail.com> | |
20745 | ||
20746 | PR tree-optimization/24659 | |
20747 | * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi, | |
20748 | OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi, | |
20749 | OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and | |
20750 | OTI_vec_pack_ufix_trunc. | |
20751 | (vec_unpacks_float_hi_optab): Define new macro. | |
20752 | (vec_unpacks_float_lo_optab): Ditto. | |
20753 | (vec_unpacku_float_hi_optab): Ditto. | |
20754 | (vec_unpacku_float_lo_optab): Ditto. | |
20755 | (vec_pack_sfix_trunc_optab): Ditto. | |
20756 | (vec_pack_ufix_trunc_optab): Ditto. | |
20757 | * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab | |
20758 | and vec_pack_[s|u]fix_trunc_optab using | |
20759 | vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns | |
20760 | * tree-vectorizer.c (supportable_widening_operation): Handle | |
20761 | FLOAT_EXPR and CONVERT_EXPR. Update comment. | |
20762 | (supportable_narrowing_operation): New function. | |
20763 | * tree-vectorizer.h (supportable_narrowing_operation): Prototype. | |
20764 | * tree-vect-transform.c (vectorizable_conversion): Handle | |
20765 | (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. | |
20766 | (vect_gen_widened_results_half): Move before vectorizable_conversion. | |
20767 | (vectorizable_type_demotion): Call supportable_narrowing_operation() | |
20768 | to check for target support. | |
20769 | * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab | |
20770 | for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab | |
20771 | for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab | |
20772 | for VEC_PACK_FIX_TRUNC_EXPR. | |
20773 | (expand_binop): Special case mode of the result for | |
20774 | vec_pack_[u|s]fix_trunc_optab. | |
20775 | (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and | |
20776 | vec_pack_[u|s]fix_trunc_optab. | |
20777 | ||
20778 | * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR, | |
20779 | VEC_PACK_FIX_TRUNC_EXPR): New tree codes. | |
20780 | * tree-pretty-print.c (dump_generic_node): Handle | |
20781 | VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and | |
20782 | VEC_PACK_FIX_TRUNC_EXPR. | |
20783 | (op_prio): Ditto. | |
20784 | * expr.c (expand_expr_real_1): Ditto. | |
20785 | * tree-inline.c (estimate_num_insns_1): Ditto. | |
20786 | * tree-vect-generic.c (expand_vector_operations_1): Ditto. | |
20787 | ||
20788 | * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander. | |
20789 | (vec_unpacks_float_lo_v8hi): Ditto. | |
20790 | (vec_unpacku_float_hi_v8hi): Ditto. | |
20791 | (vec_unpacku_float_lo_v8hi): Ditto. | |
20792 | (vec_unpacks_float_hi_v4si): Ditto. | |
20793 | (vec_unpacks_float_lo_v4si): Ditto. | |
20794 | (vec_pack_sfix_trunc_v2df): Ditto. | |
20795 | ||
20796 | * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]: | |
20797 | Document. | |
20798 | [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto. | |
20799 | [VEC_PACK_FIX_TRUNC_EXPR]: Ditto. | |
20800 | * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document. | |
20801 | [vec_pack_ufix_trunc]: Ditto. | |
20802 | [vec_unpacks_float_hi]: Ditto. | |
20803 | [vec_unpacks_float_lo]: Ditto. | |
20804 | [vec_unpacku_float_hi]: Ditto. | |
20805 | [vec_unpacku_float_lo]: Ditto. | |
20806 | ||
20807 | 2007-05-16 Uros Bizjak <ubizjak@gmail.com> | |
20808 | ||
20809 | * soft-fp/README: Update for new files. | |
20810 | * soft-fp/floattisf.c: New file. | |
20811 | * soft-fp/floattidf.c: New file. | |
20812 | * soft-fp/floattitf.c: New file. | |
20813 | * soft-fp/floatuntisf.c: New file. | |
20814 | * soft-fp/floatuntidf.c: New file. | |
20815 | * soft-fp/floatuntitf.c: New file. | |
20816 | * soft-fp/fixsfti.c: New file. | |
20817 | * soft-fp/fixdfti.c: New file. | |
20818 | * soft-fp/fixtfti.c: New file. | |
20819 | * soft-fp/fixunssfti.c: New file. | |
20820 | * soft-fp/fixunsdfti.c: New file. | |
20821 | * soft-fp/fixunstfti.c: New file. | |
20822 | * soft-fp/extendxftf.c: New file. | |
20823 | * soft-fp/trunctfxf.c: New file. | |
20824 | ||
20825 | * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section. | |
20826 | (__trunctfxf2): Ditto. | |
20827 | ||
20828 | * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2, | |
20829 | __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti, | |
20830 | __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf, | |
20831 | __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2, | |
20832 | __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2, | |
20833 | __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets. | |
20834 | ||
20835 | * config/i386/t-fprules-softfp64: New file. | |
20836 | * config/i386/sfp-machine.h: New file. | |
20837 | * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, | |
20838 | x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64 | |
20839 | and soft-fp/t-softfp to tmake_file. | |
20840 | (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, | |
20841 | i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all. | |
20842 | ||
20843 | * config/i386/t-linux64 (softfp_wrap_start): New. | |
20844 | (softfp_wrap_end): New. | |
20845 | * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is | |
20846 | supported for TARGET_64BIT. | |
20847 | ||
719bb4e3 | 20848 | 2007-05-16 Rafael Ávila de Espíndola <espindola@google.com> |
f13d199c RB |
20849 | |
20850 | * c-common.c (c_common_signed_or_unsigned_type): Emulate | |
20851 | c_common_unsigned_type behavior. | |
20852 | ||
20853 | 2007-05-16 Paolo Bonzini <bonzini@gnu.org> | |
20854 | ||
20855 | * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr | |
20856 | calls as pure. | |
20857 | ||
20858 | 2007-05-16 Eric Christopher <echristo@apple.com> | |
20859 | ||
20860 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register | |
20861 | saving after stack push. Set sp_offset whenever we push. | |
20862 | (rs6000_emit_epilogue): Move altivec register restore before | |
20863 | stack push. | |
20864 | ||
20865 | 2007-05-16 Richard Sandiford <richard@codesourcery.com> | |
20866 | ||
20867 | * configure.ac: Allow sysroots to be relocated under $prefix as | |
20868 | well as $exec_prefix. | |
20869 | * configure: Regenerate. | |
20870 | ||
20871 | 2007-05-16 Richard Sandiford <richard@codesourcery.com> | |
20872 | ||
20873 | Revert: | |
20874 | ||
20875 | 2007-05-12 Richard Sandiford <richard@codesourcery.com> | |
20876 | ||
20877 | * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). | |
20878 | (gcc_tooldir): Likewise. | |
20879 | * configure: Regenerate. | |
20880 | * Makefile.in (libsubdir_to_prefix): New variable, based on the | |
20881 | old configure.ac gcc_tooldir setting. | |
20882 | (prefix_to_exec_prefix): New variable. | |
20883 | (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) | |
20884 | rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. | |
20885 | ||
20886 | 2007-05-14 Janis Johnson <janis187@us.ibm.com> | |
20887 | ||
20888 | * c-typeck.c (build_binary_op): Return early for error. | |
20889 | ||
20890 | 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz> | |
20891 | ||
20892 | * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate | |
20893 | struct nb_iter_bound. | |
20894 | (free_numbers_of_iterations_estimates_loop): Use ggc_free. | |
20895 | * gengtype.c (open_base_files): Add cfhloop.h to the list of includes. | |
20896 | * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated. | |
20897 | * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h. | |
20898 | (struct scev_info_str, scalar_evolution_info): Add GTY markers. | |
20899 | (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str. | |
20900 | (del_scev_info): Use ggc_free. | |
20901 | (scev_initialize): Allocate scalar_evolution_info in gc memory. | |
20902 | * loop-init.c: Include ggc.h. | |
20903 | (loop_optimizer_init): Use GGC_CNEW to allocate struct loops. | |
20904 | (loop_optimizer_finalize): Use ggc_free. | |
20905 | * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize, | |
20906 | pass_linear_transfom, pass_empty_loop, pass_complete_unroll, | |
20907 | pass_iv_optimize): Add TODO_ggc_collect. | |
20908 | * function.h (struct function): Remove skip marker from | |
20909 | x_current_loops. | |
20910 | * cfgloop.c: Include ggc.h. | |
20911 | (flow_loops_free, flow_loop_free): Free the loop descriptions in gc | |
20912 | memory. | |
20913 | (establish_preds): Vector superloops is gc allocated. | |
20914 | (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of | |
20915 | loop->exits list. | |
20916 | (flow_loops_find): Vector larray is gc allocated. | |
20917 | (loop_exit_free): Use ggc_free. | |
20918 | (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect | |
20919 | that head of exits list is now not a part of struct loop. | |
20920 | (record_loop_exits): Allocate exits table in gc memory. | |
20921 | (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect | |
20922 | that head of exits list is now not a part of struct loop. | |
20923 | * cfgloop.h (struct lpt_decision, struct nb_iter_bound, | |
20924 | struct loop_exit): Add GTY marker. | |
20925 | (struct loop): Add GTY marker. Make superloops vector gc allocated. | |
20926 | Add skip marker to aux field. Make head of exits list a separate | |
20927 | object. | |
20928 | (struct loops): Add GTY marker. Make larray vector gc allocated. | |
20929 | Add param marker to exits table. | |
20930 | (get_loops): Type changed. | |
20931 | * Makefile.in (tree-scalar-evolution.o): Add | |
20932 | gt-tree-scalar-evolution.h dependency. | |
20933 | (cfgloop.o, loop-init.o): Add ggc.h dependency. | |
20934 | (GTFILES): Add cfgloop.h and tree-scalar-evolution.c. | |
20935 | * basic-block.h (struct basic_block_def): Remove skip marker from | |
20936 | loop_father field. | |
20937 | ||
20938 | 2007-05-14 Uros Bizjak <ubizjak@gmail.com> | |
20939 | ||
20940 | * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead | |
20941 | of 0 in the call to expand_expr(). | |
20942 | (expand_builtin_mathfn_3): Ditto. | |
20943 | (expand_builtin_interclass_mathfn): Ditto. | |
20944 | (expand_builtin_cexpi): Ditto. | |
20945 | (expand_builtin_int_roundingfn): Ditto. | |
20946 | (expand_builtin_int_roundingfn_2): Ditto. | |
20947 | (expand_builtin_pow): Ditto. | |
20948 | (expand_builtin_powi): Ditto. | |
20949 | (expand_builtin_bswap): Ditto. | |
20950 | (expand_builtin_unop): Ditto. | |
20951 | (expand_builtin_fabs): Ditto. | |
20952 | (get_builtin_sync_mem): Use NULL_RTX instead of NULL in | |
20953 | the call to expand_expr(). | |
20954 | (expand_builtin_sync_operation): Ditto. | |
20955 | (expand_builtin_compare_and_swap): Ditto. | |
20956 | (expand_builtin_lock_test_and_set): Ditto. | |
20957 | * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL | |
20958 | instead of 0 in the call to expand_expr(). | |
20959 | (expand_builtin_extract_return_addr): Ditto. | |
20960 | (expand_builtin_eh_return): Ditto. | |
20961 | (expand_eh_return): Ditto. | |
20962 | * explow.c (expr_size): Ditto. | |
20963 | * expr.c (optimize_bitfield_assignment_op): Ditto. | |
20964 | (expand_assignement): Ditto. | |
20965 | (store_expr): Ditto. | |
20966 | (store_field): Ditto. | |
20967 | (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in | |
20968 | the call to expand_expr(). | |
20969 | (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0 | |
20970 | in the call to expand_expr(). | |
20971 | [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR, | |
20972 | BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto. | |
20973 | [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead | |
20974 | of expand_expr(). | |
20975 | * optabs.c (expand_vec_shift_expr): Ditto. | |
20976 | (expand_vec_cond_expr): Ditto. | |
20977 | (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the | |
20978 | call to expand_expr(). | |
20979 | * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0 | |
20980 | in the call to expand_expr(). | |
20981 | ||
20982 | 2007-05-14 Dave Korn <dave.korn@artimi.com> | |
20983 | ||
20984 | * genautomata.c (gen_regexp_el): Allocate correct size for regexp. | |
20985 | ||
719bb4e3 | 20986 | 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com> |
f13d199c RB |
20987 | |
20988 | * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for | |
20989 | instead of c_common_unsigned_type. | |
20990 | (c_common_unsigned_type): Remove. | |
20991 | (shorten_compare): Use c_common_signed_or_unsigned_type instead of | |
20992 | c_common_unsigned_type. | |
20993 | (c_common_nodes_and_builtins): Use unsigned_type_for instead of | |
20994 | c_common_unsigned_type. | |
20995 | * c-common.h (c_common_unsigned_type): Remove. | |
20996 | * c-decl.c (grokdeclarator): Use unsigned_type_for instead of | |
20997 | c_common_unsigned_type. | |
20998 | * c-format.c (check_format_types): Use unsigned_type_for instead of | |
20999 | c_common_unsigned_type. | |
21000 | * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. | |
21001 | * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead | |
21002 | of c_common_unsigned_type. | |
21003 | * convert.c (convert_to_integer): Use unsigned_type_for instead of | |
21004 | lang_hooks.types.unsigned_type. | |
21005 | * expmed.c (make_tree): Use unsigned_type_for instead of | |
21006 | lang_hooks.types.unsigned_type. | |
21007 | * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of | |
21008 | lang_hooks.types.unsigned_type. | |
21009 | (build_range_check): Likewise. | |
21010 | (fold_unary): Likewise. | |
21011 | (fold_binary): Likewise. | |
21012 | (fold_ternary): Likewise. | |
21013 | * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. | |
21014 | * langhooks.h (lang_hooks_for_types): Remove unsigned_type. | |
21015 | * tree.c (get_unsigned_type): New. | |
21016 | (unsigned_type_for): Use get_unsigned_type instead of | |
21017 | lang_hooks.types.unsigned_type. | |
21018 | ||
21019 | 2007-05-14 Kazu Hirata <kazu@codesourcery.com> | |
21020 | ||
21021 | * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p | |
21022 | to m68k_get_function_kind. Update its prototype. | |
21023 | * config/m68k/m68k.c (m68k_attribute_table): Add an entry for | |
21024 | interrupt_thread. | |
21025 | (m68k_interrupt_function_p): Return enum m68k_function_type | |
21026 | instead of bool. Rename to m68k_get_function_kind. | |
21027 | (m68k_handle_fndecl_attribute): Reject interrupt_thread if the | |
21028 | target is not fido. | |
21029 | (m68k_compute_frame_layout): Don't mark any register for save | |
21030 | if an interrupt_thread attribute is specified. | |
21031 | (m68k_hard_regno_rename_ok): Update a use of | |
21032 | m68k_interrupt_function_p. | |
21033 | * config/m68k/m68k.h (EPILOGUE_USES): Update a use of | |
21034 | m68k_interrupt_function_p. | |
21035 | (m68k_function_type): New. | |
21036 | * config/m68k/m68k.md (*return): Output a 'sleep' instruction | |
21037 | for a function with an interrupt_thread attribute. | |
21038 | * doc/extend.texi: Document the interrupt_thread attribute. | |
21039 | ||
21040 | 2007-05-13 Daniel Berlin <dberlin@dberlin.org> | |
21041 | ||
21042 | Fix PR tree-optimization/31911 | |
21043 | * tree-ssa-pre.c (phi_translate): Make sure to cache results even | |
21044 | if they didn't change the expression. | |
21045 | ||
21046 | 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz> | |
21047 | ||
21048 | * tree-scalar-evolution.c (resolve_mixers): Exported. | |
21049 | * tree-scalar-evolution.h (resolve_mixers): Declare. | |
21050 | * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p, | |
21051 | ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, | |
21052 | record_record_differ_p, record_array_differ_p, array_ptr_differ_p, | |
21053 | base_object_differ_p, base_addr_differ_p, analyze_array_indexes, | |
21054 | init_array_ref, init_pointer_ref, analyze_indirect_ref, | |
21055 | strip_conversion, analyze_offset_expr, address_analysis, | |
21056 | object_analysis, analyze_offset): Removed. | |
21057 | (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias, | |
21058 | split_constant_offset, canonicalize_base_object_address, | |
21059 | object_address_invariant_in_loop_p, disjoint_objects_p, | |
21060 | dr_may_alias_p, dr_address_invariant_p): New functions. | |
21061 | (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices | |
21062 | and dr_analyze_alias. | |
21063 | (initialize_data_dependence_relation): Use dr_may_alias_p | |
21064 | and object_address_invariant_in_loop_p. | |
21065 | (compute_self_dependence): Handle the case when | |
21066 | DDR_ARE_DEPENDENT (ddr) is chrec_dont_know. | |
21067 | (find_data_references_in_stmt): Restrict the analysis of data | |
21068 | references to the given loop nest. | |
21069 | (find_data_references_in_loop): Made static. Pass loop nest to | |
21070 | find_data_references_in_stmt. | |
21071 | (compute_data_dependences_for_loop): Use DR_VOPS. | |
21072 | (free_data_ref): Free DR_VOPS. | |
21073 | * tree-data-ref.h (struct first_location_in_loop): Replaced by ... | |
21074 | (struct innermost_loop_behavior): ... new. | |
21075 | (struct base_object_info): Replaced by ... | |
21076 | (struct indices): ... new. | |
21077 | (struct dr_alias): New. | |
21078 | (enum data_ref_type): Removed. | |
21079 | (struct data_reference): Consist of struct innermost_loop_behavior, | |
21080 | struct indices and struct dr_alias. | |
21081 | (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed. | |
21082 | (DR_MEMTAG): Renamed to ... | |
21083 | (DR_SYMBOL_TAG): ... this. | |
21084 | (find_data_references_in_loop): Declaration removed. | |
21085 | * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT | |
21086 | instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL. | |
21087 | (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG. | |
21088 | * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. | |
21089 | ||
21090 | 2007-05-13 Revital Eres <eres@il.ibm.com> | |
21091 | ||
21092 | * tree-ssa-dse.c (get_use_of_stmt_lhs): New function | |
21093 | which walks virtual def-use chains to find redundant stores. | |
21094 | (dse_optimize_stmt): Call it. | |
21095 | ||
21096 | 2007-05-12 Steven Bosscher <steven@gcc.gnu.org> | |
21097 | ||
21098 | * gcse.c (gcse_main): Do jump bypassing in CPROP2. | |
21099 | * passes.c (init_optimization_passes): Move pass_jump_bypass | |
21100 | after loop2. | |
21101 | ||
21102 | * basic-block.h (bb_has_eh_pred): Fix style issue. | |
21103 | ||
21104 | 2007-05-12 Steven Bosscher <steven@gcc.gnu.org> | |
21105 | ||
21106 | PR rtl-optimization/31848 | |
21107 | * loop-invariant.c (move_invariant_reg): If we move an insn | |
21108 | with a REG_EQUAL note, and that insn is not always executed, | |
21109 | remove the REG_EQUAL note. | |
21110 | ||
21111 | 2007-05-12 Richard Guenther <rguenther@suse.de> | |
21112 | ||
21113 | PR tree-optimization/31797 | |
21114 | * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not | |
21115 | propagate into a stmt that has volatile ops. | |
21116 | ||
21117 | 2007-05-12 Richard Sandiford <richard@codesourcery.com> | |
21118 | ||
21119 | * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). | |
21120 | (gcc_tooldir): Likewise. | |
21121 | * configure: Regenerate. | |
21122 | * Makefile.in (libsubdir_to_prefix): New variable, based on the | |
21123 | old configure.ac gcc_tooldir setting. | |
21124 | (prefix_to_exec_prefix): New variable. | |
21125 | (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) | |
21126 | rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. | |
21127 | ||
21128 | 2007-05-11 Silvius Rus <rus@google.com> | |
21129 | ||
21130 | * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o. | |
21131 | * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic. | |
21132 | * c-common.h (strict_aliasing_warning): Change return type. | |
21133 | * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing. | |
21134 | * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. | |
21135 | (build_c_cast): Condition call to strict_aliasing_warning. | |
21136 | * doc/invoke.texi: Update description of -Wstrict-aliasing[=n]. | |
21137 | * flags.h (set_Wstrict_aliasing): Declare. | |
21138 | * opts.c (set_Wstrict_alising): Define, add call to. | |
21139 | * tree-flow.h (strict_aliasing_warning_backend): Declare. | |
21140 | * tree-ssa-alias-warnings.c: New file. | |
21141 | * tree-ssa-alias.c (compute_may_aliases): Add call to | |
21142 | strict_aliasing_warning_backend. | |
21143 | ||
21144 | 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz> | |
21145 | ||
21146 | * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): | |
21147 | Use loop_depth and loop_outer accessor functions. | |
21148 | * tree-ssa-loop-im.c (outermost_invariant_loop, set_level, | |
21149 | determine_invariantness_stmt, move_computations_stmt): Ditto. | |
21150 | * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path, | |
21151 | add_loop, loopify, unloop, fix_loop_structure): Ditto. | |
21152 | * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto. | |
21153 | * tree-scalar-evolution.c (interpret_loop_phi, | |
21154 | compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop, | |
21155 | instantiate_parameters_1, scev_const_prop): Ditto. | |
21156 | * cfghooks.c (make_forwarder_block): Ditto. | |
21157 | * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto. | |
21158 | * modulo-sched.c (loop_canon_p): Ditto. | |
21159 | * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg, | |
21160 | slpeel_can_duplicate_loop_p): Ditto. | |
21161 | * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto. | |
21162 | * tree-cfg.c (tree_duplicate_sese_region): Ditto. | |
21163 | * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit, | |
21164 | cancel_loop, verify_loop_structure): Ditto. | |
21165 | (flow_loop_nested_p, superloop_at_depth, flow_loop_free, | |
21166 | add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the | |
21167 | superloops vector instead of "pred" array. | |
21168 | (establish_preds): Take father loop as an argument. Initialize the | |
21169 | superloops vector. | |
21170 | (flow_loop_tree_node_add): Pass father loop to establish_preds. | |
21171 | Do not initialize loop->outer. | |
21172 | (flow_loop_tree_node_remove): Truncate the superloops vector. | |
21173 | * cfgloop.h (struct loop): Removed field "outer", fields "depth" and | |
21174 | "pred" merged to "superloops" vector. | |
21175 | (loop_depth, loop_outer): New. | |
21176 | (fel_init): Use loop_outer. | |
21177 | ||
21178 | 2007-05-11 Jan Hubicka <jh@suse.cz> | |
21179 | ||
21180 | * cgraphunit.c: Include gt-cgraphunit.h | |
21181 | (static_ctors, static_dtors): New static vars. | |
21182 | (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions, | |
21183 | based on implementation in c-common.c | |
21184 | (cgraph_finalize_function): Call record_cdtor_fn. | |
21185 | (cgraph_optimize): Call cgraph_build_cdtor_fns. | |
21186 | * decl.c (finish_function): Do not call c_record_cdtor_fn. | |
21187 | (c_write_global_declarations): Do not call c_build_cdtor_fns. | |
21188 | * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn, | |
21189 | build_cdtor, c_build_cdtor_fns): Remove. | |
21190 | * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn, | |
21191 | c_build_cdtor_fns): Remove prototype. | |
21192 | ||
21193 | 2007-05-11 Paolo Carlini <pcarlini@suse.de> | |
21194 | ||
21195 | PR other/31852 | |
21196 | * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE. | |
21197 | * builtins.def: Add BUILT_IN_MEMCHR, use the latter. | |
21198 | * builtins.c (fold_builtin_memchr): New. | |
21199 | (expand_builtin_memchr): Call the latter. | |
21200 | (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR. | |
21201 | * doc/extend.texi ([Other built-in functions provided by GCC]): | |
21202 | Document memchr. | |
21203 | ||
21204 | 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com> | |
21205 | ||
21206 | * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM, | |
21207 | PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF, | |
21208 | PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT, | |
21209 | PFPO_OP1_TYPE_SHIFT): Constants added. | |
21210 | (DFP_ALL): Mode macro defined. | |
21211 | ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2", | |
21212 | "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"): | |
21213 | Insn definitions added. | |
21214 | ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2", | |
21215 | "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"): | |
21216 | Expanders added. | |
21217 | ||
21218 | 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz> | |
21219 | ||
21220 | PR tree-optimization/31885 | |
21221 | * tree-chrec.c (chrec_contains_undetermined): Do not consider | |
21222 | NULL_TREE to be undetermined. | |
21223 | (automatically_generated_chrec_p): Return false for NULL. | |
21224 | ||
21225 | 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com> | |
21226 | ||
21227 | * config/bfin/bfin.h (MOVE_RATIO): Define. | |
21228 | ||
21229 | 2007-05-10 Richard Sandiford <richard@codesourcery.com> | |
21230 | ||
21231 | * config.gcc (sparc-wrs-vxworks): New target. | |
21232 | * config/sparc/vxworks.h, config/sparc/t-vxworks: New files. | |
21233 | * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare. | |
21234 | * config/sparc/sparc.h: Include vxworks-dummy.h. | |
21235 | (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to | |
21236 | include LABEL_REFs too. | |
21237 | * config/sparc/sparc.c (sparc_expand_move): Don't assume that | |
21238 | _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on | |
21239 | VxWorks. | |
21240 | (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs | |
21241 | on VxWorks. | |
21242 | (load_pic_register): Use gen_vxworks_load_got for VxWorks. | |
21243 | (sparc_emit_call_insn): New function. | |
21244 | (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding | |
21245 | functions when generating VxWorks PIC. | |
21246 | * config/sparc/sparc.md (vxworks_load_got): New pattern. | |
21247 | (call, call_value): Use sparc_emit_call_insn instead of | |
21248 | emit_call_insn. | |
21249 | ||
21250 | 2007-05-09 Bob Wilson <bob.wilson@acm.org> | |
21251 | ||
21252 | * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if. | |
21253 | ||
21254 | 2007-05-09 Bob Wilson <bob.wilson@acm.org> | |
21255 | ||
21256 | * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits | |
21257 | for floating-point values if HOST_BITS_PER_LONG > 32. Use | |
21258 | split_double instead of operand_subword. | |
21259 | ||
21260 | 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com> | |
21261 | ||
21262 | * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define. | |
21263 | * config/bfin/bfin.c (bfin_local_alignment): New function. | |
21264 | * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it. | |
21265 | ||
21266 | 2007-05-08 Chao-ying Fu <fu@mips.com> | |
21267 | ||
21268 | * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document. | |
21269 | * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes. | |
21270 | (smsub_widen_optab, umsub_widen_optab): Define. | |
21271 | * optabs.c (init_optabs): Initialize smsub_widen_optab and | |
21272 | umsub_widen_optab. | |
21273 | * genopinit.c (optabs): Fill in smsub_widen_optab and | |
21274 | umsub_widen_optab. | |
21275 | * expr.c (expand_expr_real_1): Try to use smsub_widen_optab | |
21276 | and umsub_widen_optab to implement multiply-subtract sequences. | |
21277 | * config/mips/mips.md (*msac<u>_di): Rename to... | |
21278 | (<u>msubsidi4): ...this. Extend condition to include | |
21279 | GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint | |
21280 | of operand 0 to "ka" and use the three-operand form of msub<u> | |
21281 | for TARGET_DSPR2. | |
21282 | * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert | |
21283 | to define_expands. | |
21284 | ||
21285 | 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org> | |
21286 | ||
21287 | PR rtl-optimization/28011 | |
21288 | * reload.c (push_reload): Set dont_share if IN appears in OUT | |
21289 | also when IN is a PLUS rtx. | |
21290 | (reg_overlap_mentioned_for_reload_p): Return true if X and IN | |
21291 | are same PLUS rtx. | |
21292 | ||
21293 | 2007-05-08 Kazu Hirata <kazu@codesourcery.com> | |
21294 | ||
21295 | * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't | |
21296 | call unshare_all_decls. | |
21297 | (unshare_all_rtl): Adjust the call to unshare_all_rtl_1. | |
21298 | (unshare_all_decls): Remove. | |
21299 | ||
21300 | 2007-05-08 Simon Martin <simartin@users.sourceforge.net> | |
21301 | ||
21302 | PR 31847 | |
21303 | * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree | |
21304 | dumps. | |
21305 | ||
21306 | 2007-05-08 Sandra Loosemore <sandra@codesourcery.com> | |
21307 | Nigel Stephens <nigel@mips.com> | |
21308 | ||
21309 | * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC. | |
21310 | Update comments and all uses. | |
21311 | (MIN_FPRS_PER_FMT): Define. | |
21312 | * config/mips/mips.c (function_arg): Fix to correctly handle | |
21313 | the -mips32r2 -mfp64 -mabi=32 case. | |
21314 | (override_options): Enable use of odd-numbered registers for | |
21315 | SFmode values on MIPS32. | |
21316 | (mips_save_reg_p): Save whole floating-point register pair if | |
21317 | either half is used. | |
21318 | (compute_frame_size): Fix comment. | |
21319 | ||
21320 | 2007-05-08 Jie Zhang <jie.zhang@analog.com> | |
21321 | ||
21322 | * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third | |
21323 | argument of type bool. | |
21324 | * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth | |
21325 | argument. Safely select temporary P register according to it. | |
21326 | (do_link): Change call site of add_to_reg accordingly. | |
21327 | (do_unlink): Add epilogue_p as a fourth argument and pass it | |
21328 | to add_to_reg. | |
21329 | (expand_interrupt_handler_epilogue): Change call of do_unlink | |
21330 | accordingly. | |
21331 | (bfin_expand_prologue): Add a third argument sibcall_p. | |
21332 | * config/bfin/bfin.md (epilogue): Change call of | |
21333 | bfin_expand_epilogue accordingly. | |
21334 | (sibcall_epilogue): Likewise. | |
21335 | (eh_return_internal): Likewise. | |
21336 | ||
21337 | * config/bfin/bfin-protos.h (enum bfin_cpu): Add | |
21338 | BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561. | |
21339 | * config/bfin/bfin.c (bfin_handle_option): Handle | |
21340 | -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561. | |
21341 | * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): | |
21342 | Support bf534, bf536 and bf561. | |
21343 | * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim. | |
21344 | ||
21345 | 2007-05-08 Uros Bizjak <ubizjak@gmail.com> | |
21346 | ||
21347 | PR target/31854 | |
21348 | * config/i386/i386.c (ix86_function_regparm): Process local | |
21349 | functions only when TREE_CODE (decl) equals FUNCTION_DECL. | |
21350 | ||
21351 | 2007-05-07 Mike Stump <mrs@apple.com> | |
21352 | ||
21353 | * doc/invoke.texi (Warning Options): Document that -Wempty-body | |
21354 | also checks for and while statements in C++. | |
21355 | ||
21356 | 2007-05-07 Nathan Froyd <froydnj@codesourcery.com> | |
21357 | ||
21358 | * gcc.c (at_file_supplied): New variable. | |
21359 | (main): Set it if we expanded argv. | |
21360 | (do_spec_1): Pass an @-file to the linker if we were called with | |
21361 | an @-file argument and HAVE_GNU_LD. | |
21362 | * collect2.c (at_file_supplied): New variable. | |
21363 | (response_file): New variable. | |
21364 | (collect_exit): Unlink response_file if necessary. | |
21365 | (handler): Likewise. | |
21366 | (do_wait): Likewise. | |
21367 | (main): Set at_file_supplied if we expanded argv. | |
21368 | (collect_execute): Pass an @-file to subprocesses if we were called | |
21369 | with an @-file argument. | |
21370 | * configure.ac: Add define for HAVE_GNU_LD. | |
21371 | * configure: Regenerate. | |
21372 | * config.in: Regenerate. | |
21373 | ||
21374 | 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com> | |
21375 | ||
21376 | * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd | |
21377 | operand to HI mode. | |
21378 | (mulsi3): New. | |
21379 | (divsi3): New. | |
21380 | (udivsi3): New. | |
21381 | ||
21382 | 2007-05-07 Jayant Sonar <jayants@kpitcummins.com> | |
21383 | ||
21384 | * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define. | |
21385 | (TARGET_ENCODE_SECTION_INFO): Re-define. | |
21386 | (m32c_encode_section_info): New | |
21387 | (function_vector_handler): New | |
21388 | (current_function_special_page_vector): New | |
21389 | (m32c_special_page_vector_p): New. | |
21390 | * config/m32c/m32c-protos.h (m32c_special_page_vector_p): | |
21391 | Prototype. | |
21392 | * config/m32c/jump.md: Added instruction JSRS for functions | |
21393 | with attribute "function_vector". | |
21394 | * doc/extend.texi (function_vector): Added description | |
21395 | for M16C, M32C targets. | |
21396 | ||
21397 | 2007-05-07 DJ Delorie <dj@redhat.com> | |
21398 | ||
21399 | PR 31794 | |
21400 | * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3, | |
21401 | ashrpsi3, lshrpsi3): Update shift count constraint. | |
21402 | ||
21403 | 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net> | |
21404 | Nathan Froyd <froydnj@codesourcery.com> | |
21405 | ||
21406 | PR 22133 | |
21407 | * c-incpath.c (add_path): Strip trailing path separators. | |
21408 | ||
21409 | 2007-05-07 Eric Botcazou <ebotcazou@adacore.com> | |
21410 | ||
21411 | * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered. | |
21412 | Free dominance info before purging EH edges. | |
21413 | (eliminate_degenerate_phis): Likewise. | |
21414 | (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1. | |
21415 | ||
21416 | 2007-05-07 Jan Hubicka <jh@suse.cz> | |
21417 | ||
21418 | * gimplify.c (gimplify_expr): Do not crash when folding | |
21419 | (void *)(int)&a + 4. | |
21420 | ||
21421 | 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
21422 | ||
21423 | PR driver/31694 | |
21424 | * c-opts.c (lang_fortran): Make it non static. | |
21425 | * c-common.h (lang_fortran): New prototype. | |
21426 | * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the | |
21427 | -lang-fortran option was passed by the driver. | |
21428 | ||
21429 | 2007-05-06 Eric Botcazou <ebotcazou@adacore.com> | |
21430 | ||
21431 | * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead | |
21432 | of ASSERT_CHECKING. Tweak message. | |
21433 | ||
21434 | 2007-05-06 Revital Eres <eres@il.ibm.com> | |
21435 | ||
21436 | PR 30957 | |
21437 | * loop-unroll.c (insert_var_expansion_initialization): | |
21438 | Initialize the expansions with -zero instead of +zero. | |
21439 | ||
21440 | 2007-05-05 Aurelien Jarno <aurelien@aurel32.net> | |
21441 | ||
21442 | * config/pa/pa.md: Split tgd_load, tld_load and tie_load | |
21443 | into pic and non-pic versions. Mark r19 as used for | |
21444 | tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used | |
21445 | for tgd_load, tld_load and tie_load . | |
21446 | * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic | |
21447 | version of tgd_load, tld_load and tie_load depending on the | |
21448 | value of flag_pic. | |
21449 | ||
21450 | 2007-05-04 Ulrich Drepper <drepper@redhat.com> | |
21451 | Jakub Jelinek <jakub@redhat.com> | |
21452 | ||
21453 | * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro. | |
21454 | (__do_global_dtors_aux): Use more paranoid loop to run | |
21455 | destructors if HIDDEN_DTOR_LIST_END. | |
21456 | (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END. | |
21457 | ||
21458 | 2007-05-04 Jakub Jelinek <jakub@redhat.com> | |
21459 | ||
21460 | * varasm.c (align_variable): Don't increase alignment for | |
21461 | DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through | |
21462 | DATA_ALIGNMENT or CONSTANT_ALIGNMENT. | |
21463 | ||
21464 | 2007-05-04 Josh Conner <jconner@apple.com> | |
21465 | ||
21466 | * basic-block.h (cdi_direction): Assign values to all enumeration | |
21467 | constants. | |
21468 | (dom_computed): Remove. | |
21469 | (dom_info_state): New. | |
21470 | (set_dom_info_availability): New. | |
21471 | * tree-ssa-loop-im.c (determine_invariantness): Initialize | |
21472 | walk_data.dom_direction. | |
21473 | * cfghooks.c (delete_basic_block): Use dom_info_available_p() | |
21474 | instead of dom_computed[]. | |
21475 | (split_edge): Likewise. | |
21476 | (create_basic_block): Likewise. | |
21477 | (merge_blocks): Likewise. | |
21478 | * ifcvt.c (find_if_header): Likewise. | |
21479 | * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise. | |
21480 | * tree-ssa-dce.c (remove_dead_stmt): Likewise. | |
21481 | * tree-ssa.c (verify_ssa): Likewise. | |
21482 | * tree-cfg.c (tree_verify_flow_info): Likewise. | |
21483 | (remove_edge_and_dominated_blocks): Likewise. | |
21484 | * dominance.c (dom_computed): Make static. | |
21485 | (calc_dfs_tree_nonrec): Change third param to a bool. | |
21486 | (calc_dfs_tree): Change second param to a bool. | |
21487 | (calc_idioms): Change second param to a bool. Use | |
21488 | dom_convert_dir_to_idx. | |
21489 | (init_dom_info): Validate dir before using. | |
21490 | (dom_convert_dir_to_idx): New. | |
21491 | (calculate_dominance_info): Use dom_convert_dir_to_idx. New | |
21492 | variable 'reverse' used for calling calc_dfs_tree and calc_idoms. | |
21493 | (free_dominance_info): Use dom_convert_dir_to_idx. | |
21494 | (get_immediate_dominator): Likewise. | |
21495 | (set_immediate_dominator): Likewise. | |
21496 | (get_dominated_by): Likewise. | |
21497 | (redirect_immediate_dominators): Likewise. | |
21498 | (nearest_common_denominator): Likewise. | |
21499 | (dominated_by_p): Likewise. | |
21500 | (bb_dom_dfs_in): Likewise. | |
21501 | (bb_dom_dfs_out): Likewise. | |
21502 | (recount_dominator): Likewise. | |
21503 | (iterate_fix_dominators): Likewise. | |
21504 | (add_to_dominance_info): Likewise. | |
21505 | (delete_from_dominance_info): Likewise. | |
21506 | (first_dom_son): Likewise. | |
21507 | (next_dom_son): Likewise. | |
21508 | (dom_info_available_p): Likewise. | |
21509 | (dom_info_state): New. | |
21510 | (set_dom_info_availability): New. | |
21511 | ||
21512 | 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com> | |
21513 | ||
21514 | * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"): | |
21515 | Expander removed. | |
21516 | ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added. | |
21517 | ||
21518 | 2007-05-04 Bob Wilson <bob.wilson@acm.org> | |
21519 | ||
21520 | * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete. | |
21521 | (subdi3, subdi_carry): Delete. | |
21522 | ||
21523 | 2007-05-04 Jan Hubicka <jh@suse.cz> | |
21524 | Richard Guenther <rguenther@suse.de> | |
21525 | ||
21526 | * opts.c (decode_options): Do not fiddle with inlining | |
21527 | parameters in case of optimizing for size. | |
21528 | * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing | |
21529 | for size do nothing. | |
21530 | (cgraph_decide_inlining_of_small_function): When optimizing for | |
21531 | size never inline functions increasing caller size. | |
21532 | (cgraph_early_inlining): Inline for size when optimizing for size. | |
21533 | ||
21534 | 2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com> | |
21535 | ||
21536 | * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands | |
21537 | logical operations piecewise. | |
21538 | (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2, | |
21539 | zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi, | |
21540 | subdi_sesidi_di): Delete. | |
21541 | (add_with_carry): Produce carry in CC instead of a DREG to shorten | |
21542 | the generated sequence. Allow three-reg add in constraints. Rewrite | |
21543 | the rtl expression for carry to avoid zero_extend of a constant. | |
21544 | (sub_with_carry): New pattern. | |
21545 | (adddi3, subdi3): Change into define_expand. For subtract, generate a | |
21546 | different sequence not involving jumps. | |
21547 | (notbi): Now a named pattern. | |
21548 | ||
21549 | 2007-05-04 Bradley Lucier <lucier@math.purdue.edu> | |
21550 | ||
21551 | * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]: | |
21552 | Add the note about a significant loss of accuracy of some | |
21553 | mathematical routines when these options are used. | |
21554 | ||
21555 | 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
21556 | ||
21557 | * haifa-sched.c (rtx_vec_t): New typedef. | |
21558 | (contributes_to_priority_p): Extract piece of priority () into new | |
21559 | static function. | |
21560 | (priority): Use the function. Add assertion. | |
21561 | (rank_for_schedule, set_priorities): Add assertion to check that | |
21562 | insn's priority is initialized. | |
21563 | (clear_priorities, calc_priorities): Change signature. Make it update | |
21564 | all relevant insns. Update all callers ('add_to_speculative_block ()' | |
21565 | and 'create_block_check_twin ()'). | |
21566 | * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'. | |
21567 | Add new field 'priority_status'. | |
21568 | (INSN_PRIORITY_STATUS): New macro. | |
21569 | (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS. | |
21570 | ||
21571 | 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
21572 | ||
21573 | * sched-ebb.c (debug_ebb_dependencies): New static function. | |
21574 | (init_ready_list): Use it. | |
21575 | ||
21576 | * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()' | |
21577 | with changed signature and 'debug_rgn_dependencies ()'. | |
21578 | (debug_rgn_dependencies): New static function. | |
21579 | (init_ready_list): Use it. | |
21580 | ||
21581 | * sched-int.h (debug_dependencies): Declare. | |
21582 | ||
21583 | 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com> | |
21584 | ||
21585 | * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section. | |
21586 | ||
21587 | 2007-05-04 Dirk Mueller <dmueller@suse.de> | |
21588 | ||
21589 | * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++. | |
21590 | ||
21591 | 2007-05-03 Jan Hubicka <jh@suse.cz> | |
21592 | ||
21593 | * fold-const.c (fold_unary): Convert (T1)(X op Y) into | |
21594 | ((T1)X op (T1)Y), for pointer type in more cases than before. | |
21595 | ||
21596 | * gimplify.c (gimplify_expr): Fold (void *)&a + 4. | |
21597 | ||
21598 | * tree-object-size.c (plus_expr_object_size): When operand size is | |
21599 | unknown, return unknown. | |
21600 | ||
21601 | 2007-05-03 Dirk Mueller <dmueller@suse.de> | |
21602 | ||
21603 | * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove. | |
21604 | ||
21605 | * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated | |
21606 | options. | |
21607 | ||
21608 | * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove. | |
21609 | ||
21610 | 2007-05-03 Janis Johnson <janis187@us.ibm.com> | |
21611 | ||
21612 | * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors. | |
21613 | ||
21614 | 2007-05-03 Joseph Myers <joseph@codesourcery.com> | |
21615 | ||
21616 | * config/soft-fp/double.h, config/soft-fp/extended.h, | |
21617 | config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c, | |
21618 | config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c, | |
21619 | config/soft-fp/op-2.h, config/soft-fp/op-4.h, | |
21620 | config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from | |
21621 | glibc CVS. | |
21622 | ||
21623 | 2007-05-03 Ian Lance Taylor <iant@google.com> | |
21624 | ||
21625 | * config/rs6000/rs6000.c (rs6000_override_options): Don't set | |
21626 | MASK_PPC_GFXOPT for 8540 or 8548. | |
21627 | ||
21628 | 2007-05-03 Uros Bizjak <ubizjak@gmail.com> | |
21629 | ||
21630 | * tree-vect-transform.c (vect_update_inits_of_drs): Use | |
21631 | vect_print_dump_info() to output debug information. | |
21632 | ||
21633 | 2007-05-03 Uros Bizjak <ubizjak@gmail.com> | |
21634 | ||
21635 | PR target/31768 | |
21636 | * config/i386/i386.c (print_operand) ['z']: Output 'w' for | |
21637 | operands of size 2 when operand is not MEM_P. | |
21638 | ||
21639 | 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz> | |
21640 | ||
21641 | PR tree-optimization/30565 | |
21642 | * lambda-code.c (perfect_nestify): Fix updating of dominators. | |
21643 | ||
21644 | 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com> | |
21645 | ||
21646 | * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns. | |
21647 | (umulsi3_highpart): Use them. | |
21648 | * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move | |
21649 | for final accumulator to D regisster tranfser. | |
21650 | ||
21651 | 2007-05-03 Dorit Nuzman <dorit@il.ibm.com> | |
21652 | ||
21653 | PR tree-optimization/31699 | |
21654 | * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove | |
21655 | wrong code. | |
21656 | (vect_enhance_data_refs_alignment): Compute peel amount using | |
21657 | TYPE_VECTOR_SUBPARTS instead of vf. | |
21658 | * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise. | |
21659 | ||
21660 | 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com> | |
21661 | ||
21662 | PR bootstrap/31776 | |
21663 | * system.h: Remove inclusion of double-int.h | |
21664 | * tree.h: Include double-int.h | |
21665 | * gengtype.c: Likewise | |
21666 | * cfgloop.h: Likewise | |
21667 | * Makefile.in: Adjust dependencies on double-int.h | |
21668 | ||
21669 | 2007-05-02 Eric Christopher <echristo@apple.com> | |
21670 | ||
21671 | * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate | |
21672 | -shared to -Zdynamiclib. | |
21673 | ||
21674 | 2007-05-02 Seongbae Park <seongbae.park@gmail.com> | |
21675 | ||
21676 | PR c++/31663 | |
21677 | * c-common.c (strip_pointer_or_array_types): New function. | |
21678 | * c-common.h (strip_pointer_or_array_types): New function declaration. | |
21679 | ||
21680 | 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz> | |
21681 | ||
21682 | PR tree-optimization/31771 | |
21683 | * tree-cfg.c (move_block_to_fn): Assign bb to the correct index. | |
21684 | ||
21685 | 2007-05-02 Paul Brook <paul@codesourcery.com> | |
21686 | ||
21687 | * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow. | |
21688 | ||
21689 | 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
21690 | ||
21691 | PR middle-end/29715 | |
21692 | * fold-const.c (fold_comparision): Remove the "foo++ == CONST" | |
21693 | transformation. | |
21694 | ||
21695 | 2007-05-02 Nick Clifton <nickc@redhat.com> | |
21696 | ||
21697 | * config/frv/predicates.md (symbolic_operand): Accept CONSTs. | |
21698 | ||
21699 | 2007-05-02 Richard Guenther <rguenther@suse.de> | |
21700 | ||
21701 | PR tree-optimization/31146 | |
21702 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New | |
21703 | argument, single_use_p. If we have a single use that is | |
21704 | a conversion to the definition rhs type, propagate that rhs. | |
21705 | (forward_propagate_addr_expr): Pass single_use_p argument | |
21706 | to forward_propagate_addr_expr_1. | |
21707 | ||
21708 | 2007-05-01 H.J. Lu <hongjiu.lu@intel.com> | |
21709 | ||
21710 | * config/i386/i386.c (ix86_expand_sse_comi): Remove unused | |
21711 | variable. | |
21712 | ||
21713 | 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
21714 | ||
21715 | * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of | |
21716 | 'AMD Family 10 core'. | |
21717 | ||
21718 | 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
21719 | ||
21720 | * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 | |
21721 | and athlon64-sse3 as improved versions of k8, opteron and athlon64 | |
21722 | with SSE3 instruction set support. | |
21723 | * doc/invoke.texi: Likewise. | |
21724 | ||
21725 | 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
21726 | ||
21727 | * config/i386/i386.c (override_options): Tuning 32-byte loop | |
21728 | alignment for amdfam10 architecture. Increasing the max loop | |
21729 | alignment to 24 bytes. | |
21730 | ||
21731 | 2007-05-01 Kazu Hirata <kazu@codesourcery.com> | |
21732 | ||
21733 | * config/m68k/constraints.md: New. | |
21734 | * config/m68k/m68k.h (REG_CLASS_FROM_LETTER, | |
21735 | CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, | |
21736 | EXTRA_CONSTRAINT): Remove. | |
21737 | * config/m68k/m68k.md: Include constraints.md. | |
21738 | * expr.c (expand_expr_real_1): Copy DECL_RTL before using it. | |
21739 | ||
21740 | 2007-05-01 Ian Lance Taylor <iant@google.com> | |
21741 | ||
21742 | PR tree-optimization/31739 | |
21743 | * tree-vrp.c (vrp_val_is_max): New static function. | |
21744 | (vrp_val_is_min): New static function. | |
21745 | (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than | |
21746 | copying the node. | |
21747 | (set_value_range): Use vrp_val_is_{max,min}. | |
21748 | (extract_range_from_assert): Likewise. | |
21749 | (extract_range_from_binary_expr): Likewise. | |
21750 | (extract_range_from_unary_expr): Likewise. | |
21751 | (dump_value_range, vrp_meet): Likewise. | |
21752 | (vrp_visit_phi_node): Likewise. | |
21753 | * tree.c (build_distinct_type_copy): Revert change of 2007-04-27. | |
21754 | ||
21755 | 2007-05-01 Mark Mitchell <mark@codesourcery.com> | |
21756 | ||
21757 | * config/i386/gmon-sol2.c (size_t): New type. | |
21758 | (intptr_t): Likewise. | |
21759 | (s_textsize): Declare as size_t. | |
21760 | (sbrk): Declare. | |
21761 | (monstartup): Use size_t for sizes. | |
21762 | (_mcount): Save and restore registers. | |
21763 | (internal_mcount): Pass 0 as the first argument to monstartup | |
21764 | in 64-bit mode. | |
21765 | (moncontrol): Convert pointer to appropriately sized integer | |
21766 | before passing to profil. | |
21767 | ||
21768 | 2007-05-01 Joseph Myers <joseph@codesourcery.com> | |
21769 | ||
21770 | * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if | |
21771 | __NO_FPRS__, not just if _SOFT_DOUBLE. | |
21772 | * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise. | |
21773 | * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord | |
21774 | also for E500 double. | |
21775 | * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt, | |
21776 | suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT | |
21777 | && !TARGET_FPRS). | |
21778 | ||
21779 | 2007-05-01 Richard Guenther <rguenther@suse.de> | |
21780 | ||
21781 | * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt | |
21782 | is NULL. | |
21783 | ||
21784 | 2007-05-01 Joseph Myers <joseph@codesourcery.com> | |
21785 | ||
21786 | * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo. | |
21787 | ||
21788 | 2007-05-01 Jan Hubicka <jh@suse.cz> | |
21789 | ||
21790 | * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is | |
21791 | invariant. | |
21792 | ||
21793 | 2007-05-01 Jan Hubicka <jh@suse.cz> | |
21794 | ||
21795 | * tree.h (maybe_fold_offset_to_component_ref): Remove. | |
21796 | (maybe_fold_offset_to_reference): Declare. | |
21797 | * fold-const.c (fold_unary): Do not fold | |
21798 | (type *)&A into &A->field_of_type_and_offset_0 | |
21799 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type | |
21800 | size is unknown, give up. | |
21801 | (maybe_fold_offset_to_component_ref): Ignore firelds with unknown | |
21802 | offsets. | |
21803 | (maybe_fold_offset_to_reference): New. | |
21804 | (maybe_fold_stmt_indirect): Use it. | |
21805 | (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset. | |
21806 | * gimplify.c (gimplify_conversion): Canonicalize conversions to | |
21807 | field references. | |
21808 | (gimplify_expr): Likewise for plus_expr. | |
21809 | ||
21810 | 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz> | |
21811 | ||
21812 | * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use | |
21813 | bsi_after_labels. Always insert statements before bsi. | |
21814 | * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. | |
21815 | * predict.c (apply_return_prediction): Check for empty blocks. | |
21816 | * cfgexpand.c (lab_rtx_for_bb): New variable. | |
21817 | (label_rtx_for_bb): Do not create new tree labels. | |
21818 | (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb. | |
21819 | (tree_expand_cfg): Initialize lab_rtx_for_bb. | |
21820 | * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after | |
21821 | creating edges. | |
21822 | (label_for_bb): Add field used. | |
21823 | (update_eh_label, main_block_label): Mark the label used. | |
21824 | (cleanup_dead_labels): Remove unused labels. | |
21825 | ||
21826 | 2007-05-01 Richard Guenther <rguenther@suse.de> | |
21827 | ||
21828 | * tree-vrp.c (set_value_range): Do not allocate equiv bitmap | |
21829 | if it is not about to be set. | |
21830 | (get_value_range): Do not pre-allocate equiv bitmap. | |
21831 | (update_value_range): No need to clear equiv field. | |
21832 | (add_equivalence): Change prototype to get bitmap pointer. | |
21833 | Allocate bitmap here if it is not already. | |
21834 | (extract_range_from_assert): Do not allocate bitmap here. | |
21835 | Update callers to add_equivalence. | |
21836 | (extract_range_from_ssa_name): Likewise. | |
21837 | (get_vr_for_comparison): New static helper. | |
21838 | (compare_name_with_value): Handle NULL equiv bitmap by | |
21839 | peeling the first iteration of the comparison loop. | |
21840 | Use get_vr_for_comparison. | |
21841 | (compare_names): Handle NULL equiv bitmaps by using fake | |
21842 | ones. Use get_vr_for_comparison. | |
21843 | ||
21844 | 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com> | |
21845 | ||
21846 | * double-int.c (mpz_set_double_int): Moved from | |
21847 | tree-ssa-loop-niter.c. | |
21848 | (mpz_get_double_int): Likewise; also, add option to wrap | |
21849 | out-of-range integers. | |
21850 | * double-int.h: New prototypes for above. | |
21851 | * tree.c (get_static_type_bounds): Moved from | |
21852 | tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and | |
21853 | TYPE_MAX_VALUE if they exist.. | |
21854 | * tree.h: New prototype for above. | |
21855 | * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and | |
21856 | get_type_bounds calls. | |
21857 | (mpz_set_double_int): Move to double-int.c. | |
21858 | (get_type_bounds): Move to tree.c, rename to | |
21859 | get_static_type_bounds. | |
21860 | (mpz_to_double_int): Move to double-int.c, rename to | |
21861 | mpz_get_double_int. | |
21862 | ||
21863 | 2007-04-30 Bob Wilson <bob.wilson@acm.org> | |
21864 | ||
21865 | * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that | |
21866 | DIV0 exception can fall through to a normal return. | |
21867 | ||
21868 | 2007-04-30 Alexandre Oliva <aoliva@redhat.com> | |
21869 | ||
21870 | PR middle-end/22156 | |
21871 | Temporarily revert: | |
21872 | 2007-04-06 Andreas Tobler <a.tobler@schweiz.org> | |
21873 | * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. | |
21874 | 2007-04-05 Alexandre Oliva <aoliva@redhat.com> | |
21875 | * tree-sra.c (try_instantiate_multiple_fields): Needlessly | |
21876 | initialize align to silence bogus warning. | |
21877 | 2007-04-05 Alexandre Oliva <aoliva@redhat.com> | |
21878 | * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove | |
21879 | all_no_warning. | |
21880 | (struct sra_walk_fns): Remove use_all parameter from use. | |
21881 | (sra_hash_tree): Handle BIT_FIELD_REFs. | |
21882 | (sra_elt_hash): Don't hash bitfld blocks. | |
21883 | (sra_elt_eq): Skip them in parent compares as well. Handle | |
21884 | BIT_FIELD_REFs. | |
21885 | (sra_walk_expr): Don't maintain or pass down use_all_p. | |
21886 | (scan_use): Remove use_all parameter. | |
21887 | (scalarize_use): Likewise. Re-expand assignment to | |
21888 | BIT_FIELD_REF of gimple_reg. De-scalarize before input or | |
21889 | output, and re-scalarize after output. Don't mark anything | |
21890 | for no warning. | |
21891 | (scalarize_ldst): Adjust. | |
21892 | (scalarize_walk_gimple_modify_statement): Likewise. | |
21893 | (build_element_name_1): Handle BIT_FIELD_REFs. | |
21894 | (instantiate_element): Don't warn for any element whose parent | |
21895 | is used as a whole. | |
21896 | (instantiate_missing_elements_1): Return the sra_elt. | |
21897 | (canon_type_for_field): New. | |
21898 | (try_instantiate_multiple_fields): New. | |
21899 | (instantiate_missing_elemnts): Use them. | |
21900 | (mark_no_warning): Removed. | |
21901 | (generate_one_element_ref): Handle BIT_FIELD_REFs. | |
21902 | (REPLDUP, sra_build_elt_assignment): New. | |
21903 | (generate_copy_inout): Use them. | |
21904 | (generate_element_copy): Likewise. Handle bitfld differences. | |
21905 | (generate_element_zero): Don't recurse for blocks. Use | |
21906 | sra_build_elt_assignment. | |
21907 | (generate_one_element_int): Take elt instead of var. Use | |
21908 | sra_build_elt_assignment. | |
21909 | (generate_element_init_1): Adjust. | |
21910 | (scalarize_use, scalarize_copy): Use REPLDUP. | |
21911 | (scalarize_ldst): Move assert before dereference. | |
21912 | (dump_sra_elt_name): Handle BIT_FIELD_REFs. | |
21913 | ||
21914 | 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
21915 | ||
21916 | PR C++/31721 | |
21917 | * tree.c (reconstruct_complex_type): Reconstruct a reference | |
21918 | correctly. | |
21919 | Also use the same mode for the pointer as the old pointer type. | |
21920 | ||
21921 | 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr> | |
21922 | ||
21923 | * doc/trouble.texi (Interoperation): Remove note about Ultrix | |
21924 | Fortran compiler. | |
21925 | ||
21926 | 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz> | |
21927 | ||
21928 | PR rtl-optimization/31676 | |
21929 | * df-scan.c (record_nonlocal_goto_receiver_defs): New function. | |
21930 | (df_refs_record): Call it. | |
21931 | ||
21932 | 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com> | |
21933 | ||
21934 | * rtl.def (SS_ABS): New code. | |
21935 | * config/bfin/bfin.c (print_operand): New modifier 'v'. | |
21936 | (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32, | |
21937 | BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32, | |
21938 | BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32. | |
21939 | (bfin_init_builtins): Define them. | |
21940 | (bdesc_1arg, bdesc_2arg): Add some of them here, ... | |
21941 | (bfin_expand_builtin): ... and handle the others here. | |
21942 | * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3, | |
21943 | flag_mul_macv2hi_parts_acconly_andcc0): New patterns. | |
21944 | (ss_absv2hi2): Renamed from absv2hi; use ss_abs code. | |
21945 | (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count | |
21946 | operand is only HImode. | |
21947 | ||
21948 | 2007-04-29 Steven Bosscher <steven@gcc.gnu.org> | |
21949 | ||
21950 | * regclass.c (scan_one_insn): Remove splitting of | |
21951 | two address insns. | |
21952 | ||
21953 | 2007-04-28 Sandra Loosemore <sandra@codesourcery.com> | |
21954 | Nigel Stephens <nigel@mips.com> | |
21955 | ||
21956 | * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16. | |
21957 | ||
21958 | 2007-04-28 Jan Hubicka <jh@suse.cz> | |
21959 | ||
21960 | * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use | |
21961 | insn_locators_alloc instead of insn_locators_initialize; | |
21962 | call reset_block_changes. | |
21963 | * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. | |
21964 | * config/sh/sh.c (sparc_output_mi_thunk): Likewise. | |
21965 | * config/is64/ia64.c (ia64_output_mi_thunk): Likewise. | |
21966 | * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. | |
21967 | * config/score/score.c (th_output_mi_thunk): Likewise. | |
21968 | * config/mips/mips.c (mips_output_mi_thunk): Likewise. | |
21969 | * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block): | |
21970 | tolerate uninitialized locator info. | |
21971 | ||
21972 | Re-apply: | |
21973 | * function.c (init_function_start): Don't init line number info. | |
21974 | (expand_function_end): Update. | |
21975 | (reset_block_changes, record_block_change, finalize_block_changes, | |
21976 | check_block_change, free_block_changes): Kill. | |
21977 | * function.h (reset_block_changes, record_block_change, | |
21978 | finalize_block_changes, check_block_change, free_block_changes): | |
21979 | Remove prototypes. | |
21980 | (struct function): Remove ib_boundaries_block. | |
21981 | * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): | |
21982 | Use curr_insn_locator to initialize locator. | |
21983 | (emit_line_note): Remove. | |
21984 | * cfgexpand.c (expand_gimple_cond_expr): Update. | |
21985 | (construct_exit_block): Likewise. | |
21986 | (tree_expand_cfg): Initialize/finalize locators. | |
21987 | * expr.c (expand_expr_real): Update. | |
21988 | * cfglayout.c (line_locators_locs, line_locators_lines, | |
21989 | file_locators_locs, file_locators_files): Remove. | |
21990 | (set_block_levels): Move to cfgexpand.c. | |
21991 | (insn_locators_initialize): Remove. | |
21992 | (pass_insn_locators_initialize): Remove. | |
21993 | (locations_locators_locs, locations_locators_vals): New static vars. | |
21994 | (curr_location, last_location, curr_block, last_block, curr_rtl_loc): | |
21995 | Likewise. | |
21996 | (insn_locators_alloc, insn_locators_finalize, | |
21997 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
21998 | New functions. | |
21999 | (locator_location): New. | |
22000 | (locator_line, locator_file): Rewrite. | |
22001 | * rtl.h (emit_line_note): Kill. | |
22002 | (insn_locators_alloc, insn_locators_finalize, | |
22003 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
22004 | Declare. | |
22005 | * tree-inline.c (initialize_cfun): Do not initialize | |
22006 | ib_boundaries_block. | |
22007 | * passes.c (pass_insn_locators_initialize): Remove. | |
22008 | ||
22009 | 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz> | |
22010 | ||
22011 | * tree-cfg.c (move_block_to_fn): Release bb from dominance | |
22012 | info. Update last_basic_block correctly. | |
22013 | ||
22014 | 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org> | |
22015 | ||
22016 | PR target/31701 | |
22017 | * config/sh/sh.c (output_stack_adjust): Avoid using the frame | |
22018 | register itself to hold the offset constant. Tell flow the use | |
22019 | of r4 and r5 when they are used. | |
22020 | ||
22021 | 2007-04-27 Richard Guenther <rguenther@suse.de> | |
22022 | ||
22023 | * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track | |
22024 | if we simplified anything. | |
22025 | (tree_ssa_forward_propagate_single_use_vars): Defer overflow | |
22026 | warnings until we did a simplification and the stmt was not | |
22027 | marked as TREE_NO_WARNING. | |
22028 | ||
22029 | 2007-04-27 Mike Stump <mrs@apple.com> | |
22030 | ||
22031 | * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove. | |
22032 | ||
22033 | 2007-04-27 Ian Lance Taylor <iant@google.com> | |
22034 | ||
22035 | PR middle-end/31710 | |
22036 | * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or | |
22037 | TYPE_MAX_VALUE exist, convert them to the new type. | |
22038 | ||
22039 | 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz> | |
22040 | ||
22041 | * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info | |
22042 | if it claims to be available. | |
22043 | * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when | |
22044 | edge is redirected. | |
22045 | (perform_tree_ssa_dce): Always free postdominators. | |
22046 | ||
22047 | 2007-04-27 Richard Henderson <rth@redhat.com> | |
22048 | ||
22049 | * config/alpha/predicates.md (aligned_memory_operand): Mark | |
22050 | as define_special_predicate. | |
22051 | (unaligned_memory_operand, normal_memory_operand): Likewise. | |
22052 | (reg_or_unaligned_mem_operand): Remove. | |
22053 | (any_memory_operand): Match the documentation and check for | |
22054 | non-renumbered pseudos during reload. | |
22055 | * config/alpha/alpha.c (alpha_secondary_reload): Rename from | |
22056 | alpha_secondary_reload_class, update to new interface, make static. | |
22057 | Handle CQImode like HImode. Remove FP subreg check. | |
22058 | (alpha_expand_mov): Use replace_equiv_address. | |
22059 | (alpha_expand_mov_nobwx): Use any_memory_operand. | |
22060 | (TARGET_SECONDARY_RELOAD): New. | |
22061 | * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove. | |
22062 | (SECONDARY_OUTPUT_RELOAD_CLASS): Remove. | |
22063 | * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ... | |
22064 | * config/alpha/alpha.md: ... here. | |
22065 | (RELOAD12, reloadmode): New. | |
22066 | (movcqi): New. | |
22067 | (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi. | |
22068 | Don't handle the aligned case here. | |
22069 | (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi. | |
22070 | (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help, | |
22071 | reload_inhi_help. Don't expect a scratch register. | |
22072 | (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help, | |
22073 | reload_outhi_help. | |
22074 | * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove. | |
22075 | ||
22076 | 2007-04-27 Richard Guenther <rguenther@suse.de> | |
22077 | ||
22078 | * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo. | |
22079 | ||
22080 | 2007-04-27 Richard Guenther <rguenther@suse.de> | |
22081 | ||
22082 | PR tree-optimization/30965 | |
22083 | PR tree-optimization/30978 | |
22084 | * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H). | |
22085 | * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove. | |
22086 | (find_equivalent_equality_comparison): Likewise. | |
22087 | (simplify_cond): Likewise. | |
22088 | (get_prop_source_stmt): New helper. | |
22089 | (get_prop_dest_stmt): Likewise. | |
22090 | (can_propagate_from): Likewise. | |
22091 | (remove_prop_source_from_use): Likewise. | |
22092 | (combine_cond_expr_cond): Likewise. | |
22093 | (forward_propagate_comparison): New function. | |
22094 | (forward_propagate_into_cond): Rewrite to use fold for | |
22095 | tree combining. | |
22096 | (tree_ssa_forward_propagate_single_use_vars): Call | |
22097 | forward_propagate_comparison to propagate comparisons. | |
22098 | ||
22099 | 2007-04-27 Richard Guenther <rguenther@suse.de> | |
22100 | ||
22101 | PR tree-optimization/31715 | |
22102 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make | |
22103 | sure to do computation on the offset in an appropriate | |
22104 | signed type. | |
22105 | ||
22106 | 2007-04-27 Richard Sandiford <richard@codesourcery.com> | |
22107 | ||
22108 | * reload.h (elimination_target_reg_p): Declare. | |
22109 | * reload.c (find_reloads): Don't apply the reg_rtx move | |
22110 | optimization if the SET_DEST satisfies elimination_target_reg_p. | |
22111 | * reload1.c (elimination_target_reg_p): New function. | |
22112 | (gen_reload): In the move/add2 fallback, make sure that op0 | |
22113 | does not overlap the destination register. | |
22114 | ||
22115 | 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz> | |
22116 | ||
22117 | * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to | |
22118 | transform only GIMPLE_MODIFY_STMTs. | |
22119 | * tree-complex.c (expand_complex_operations_1): Ditto. | |
22120 | (expand_complex_div_wide): Do not create gotos in COND_EXPR branches. | |
22121 | * tree-ssa-loop-manip.c (build_if_stmt): Removed. | |
22122 | (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR | |
22123 | branches. | |
22124 | * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2, | |
22125 | tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto. | |
22126 | * omp-low.c (expand_parallel_call, expand_omp_for_generic, | |
22127 | expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto. | |
22128 | * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes, | |
22129 | slpeel_add_loop_guard): Ditto. | |
22130 | * tree-mudflap.c (mf_build_check_statement_for): Ditto. | |
22131 | * lambda-code.c (perfect_nestify): Ditto. | |
22132 | * tree-iterator.c (tsi_split_statement_list_before): Fix splitting | |
22133 | before the first statement. | |
22134 | * tree-optimize.c (execute_free_datastructures): Fix comments. | |
22135 | (execute_free_cfg_annotations): Do not call disband_implicit_edges. | |
22136 | * tree-flow.h (disband_implicit_edges): Declaration removed. | |
22137 | * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR | |
22138 | branches. | |
22139 | (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle | |
22140 | COND_EXPRs without gotos. | |
22141 | (disband_implicit_edges, has_label_p): Removed. | |
22142 | (tree_verify_flow_info): Verify that COND_EXPR branches are empty. | |
22143 | (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR | |
22144 | branches. | |
22145 | * tree.c (build3_stat): Mark COND_EXPRs used as statements as having | |
22146 | side effects. | |
22147 | * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges | |
22148 | also for COND_EXPRs. | |
22149 | * cfgexpand.c (label_rtx_for_bb): New function. | |
22150 | (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches. | |
22151 | Use label_rtx_for_bb to find the labels. | |
22152 | (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the | |
22153 | last block. Detect fallthru edges. | |
22154 | ||
22155 | 2007-04-26 Ian Lance Taylor <iant@google.com> | |
22156 | ||
22157 | PR target/28675 | |
22158 | * reload.c (find_reloads_subreg_address): If the address was valid | |
22159 | in the original mode but not in the new mode, reload the whole | |
22160 | address. | |
22161 | ||
22162 | 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz> | |
22163 | ||
22164 | * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable. | |
22165 | (remove_fallthru_edge): Use remove_edge_and_dominated_blocks. | |
22166 | (cleanup_control_expr_graph): Do not invalidate dominance info. | |
22167 | Record altered blocks. | |
22168 | (cleanup_control_flow, cleanup_forwarder_blocks): Removed. | |
22169 | (cleanup_control_flow_bb, split_bbs_on_noreturn_calls, | |
22170 | cleanup_tree_cfg_bb): New functions. | |
22171 | (remove_forwarder_block): Do not maintain the worklist of blocks. | |
22172 | Record altered blocks. | |
22173 | (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs, | |
22174 | not over whole cfg. | |
22175 | (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call | |
22176 | delete_unreachable_blocks if dominators are not available. | |
22177 | * tree-inline.c (optimize_inline_calls): Free dominance information | |
22178 | earlier. | |
22179 | * tree-flow.h (remove_edge_and_dominated_blocks, | |
22180 | cfgcleanup_altered_bbs): Altered. | |
22181 | * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered | |
22182 | blocks. | |
22183 | (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New | |
22184 | functions. | |
22185 | (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks, | |
22186 | do not invalidate dominators. | |
22187 | ||
22188 | 2007-04-26 Anatoly Sokolov <aesok@post.ru> | |
22189 | ||
22190 | * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and | |
22191 | ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture. | |
22192 | * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). | |
22193 | * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). | |
22194 | ||
22195 | 2007-04-26 Steve Ellcey <sje@cup.hp.com> | |
22196 | ||
22197 | * config/ia64/ia64.md (ip_value): Fix itanium_class attribute. | |
22198 | ||
22199 | 2007-04-26 Richard Guenther <rguenther@suse.de> | |
22200 | ||
22201 | PR tree-optimization/31703 | |
22202 | * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use | |
22203 | the right type for the target of the bittest. | |
22204 | ||
22205 | 2007-04-26 Richard Sandiford <richard@codesourcery.com> | |
22206 | ||
22207 | * config/i386/vx-common.h (RETURN_IN_MEMORY): Use | |
22208 | ix86_sol10_return_in_memory. | |
22209 | ||
22210 | 2007-04-26 Richard Sandiford <richard@codesourcery.com> | |
22211 | ||
22212 | * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused | |
22213 | variables. | |
22214 | ||
22215 | 2007-04-26 Jakub Jelinek <jakub@redhat.com> | |
22216 | ||
22217 | PR c++/31598 | |
22218 | * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE. | |
22219 | ||
22220 | PR tree-optimization/30558 | |
22221 | * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW | |
22222 | clear this_state.prev_try. | |
22223 | ||
22224 | 2007-04-26 Richard Sandiford <richard@codesourcery.com> | |
22225 | Mark Mitchell <mark@codesourcery.com> | |
22226 | ||
22227 | * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare. | |
22228 | * config/i386/i386.c (ix86_sol10_return_in_memory): New function. | |
22229 | * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it. | |
22230 | ||
22231 | 2007-04-26 Richard Sandiford <richard@codesourcery.com> | |
22232 | ||
22233 | PR driver/31107 | |
22234 | * doc/invoke.texi (%:print-asm-header): Document. | |
22235 | * gcc.c (asm_options): Use %:print-asm-header() for --target-help | |
22236 | and -ftarget-help. | |
22237 | (static_spec_functions): Add print-asm-header. | |
22238 | (main): Print a banner before the --target-help linker options. | |
22239 | (print_asm_header_spec_function): New function. | |
22240 | ||
22241 | 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org> | |
22242 | ||
22243 | PR target/31403 | |
22244 | * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A. | |
22245 | (movsf_ie): Likewise. | |
22246 | ||
22247 | 2007-04-25 Paolo Carlini <pcarlini@suse.de> | |
22248 | ||
22249 | * doc/extend.texi ([Type Traits]): Adjust per N2255. | |
22250 | ||
22251 | 2007-04-25 Bob Wilson <bob.wilson@acm.org> | |
22252 | ||
22253 | * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an | |
22254 | exception for divide-by-zero. | |
22255 | (__umodsi3, __modsi3): Likewise. | |
22256 | ||
22257 | 2007-04-25 Dirk Mueller <dmueller@suse.de> | |
22258 | ||
22259 | * c-typeck.c (build_compound_expr): Annotate warning() | |
22260 | call with OPT_Wunused_value. | |
22261 | * tree-ssa.c (warn_uninit): Annotate warning with | |
22262 | OPT_Wunintialized. | |
22263 | * c-common.c (handle_sentinel_attribute): Annotate warning | |
22264 | call with OPT_Wattributes. | |
22265 | ||
22266 | 2007-04-25 Thiemo Seufer <ths@mips.com> | |
22267 | ||
22268 | * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options. | |
22269 | (mips16): Fix typo. | |
22270 | * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx | |
22271 | on to the assembler. Improve handling of -mno-mips16. Add handling | |
22272 | of -mno-mips3d, -mno-dsp, -mno-dspr2. | |
22273 | * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use | |
22274 | of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx, | |
22275 | -mno-mdmx, -mno-mips3d, -mmt and -mno-mt. | |
22276 | ||
22277 | 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net> | |
22278 | ||
22279 | PR target/31680 | |
22280 | * config/i386/winnt.c (i386_pe_file_end): Strip only | |
22281 | USER_LABEL_PREFIX when writing export name. | |
22282 | ||
22283 | 2007-04-25 Richard Sandiford <richard@codesourcery.com> | |
22284 | ||
22285 | * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include | |
22286 | sh/elf.h, vx-common.h and vxworks.h. | |
22287 | * config/sh/sh.h: Include config/vxworks-dummy.h. | |
22288 | (SUBTARGET_OVERRIDE_OPTIONS): Define. | |
22289 | (OVERRIDE_OPTIONS): Use it. | |
22290 | * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs. | |
22291 | (vxworks_picreg): New pattern. | |
22292 | * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use | |
22293 | VXWORKS_OS_CPP_BUILTINS. | |
22294 | (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine | |
22295 | to their VXWORKS_* equivalents. | |
22296 | (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. | |
22297 | (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define. | |
22298 | * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC. | |
22299 | (set_fpscr, ic_invalidate): Add VxWorks PIC sequences. | |
22300 | * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and | |
22301 | -mrtp/-fPIC multilibs. | |
22302 | (MULTILIB_EXCEPTIONS): Generalize globs accordingly. | |
22303 | (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define. | |
22304 | (MULTILIB_OSDIRNAMES): Delete. | |
22305 | ||
22306 | 2007-04-25 Anatoly Sokolov <aesok@post.ru> | |
22307 | ||
22308 | PR target/18989 | |
22309 | * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine. | |
22310 | ||
22311 | 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com> | |
22312 | ||
22313 | * real.c (mpfr_from_real): Handle Inf and NaN, and allow the | |
22314 | rounding mode to be specified by the caller. | |
22315 | (real_to_mpfr) Likewise. | |
22316 | * real.h: Update mpfr_from_real, mpfr_to_real prototypes to | |
22317 | include new arguments. | |
22318 | * builtins.c: Update mpfr_from_real, mpfr_to_real calls. | |
22319 | ||
22320 | 2007-04-24 Ian Lance Taylor <iant@google.com> | |
22321 | ||
22322 | PR tree-optimization/31605 | |
22323 | * tree-vrp.c (set_value_range): Check that min and max are not | |
22324 | both overflow infinities. | |
22325 | (set_value_range_to_value): New static function. | |
22326 | (extract_range_from_binary_expr): Call set_value_range_to_value. | |
22327 | (extract_range_from_cond_expr): Likewise. | |
22328 | (extract_range_from_expr): Likewise. | |
22329 | (extract_range_from_unary_expr): Likewise. Don't create a range | |
22330 | which overflows on both sides. | |
22331 | (vrp_meet): Check for a useless range. | |
22332 | (vrp_visit_phi_node): If we see a constant which looks like an | |
22333 | overflow infinity, turn off the TREE_OVERFLOW flag. | |
22334 | ||
22335 | 2007-04-24 Ian Lance Taylor <iant@google.com> | |
22336 | ||
22337 | * flow.c (elim_reg_cond): Handle a comparison of a subreg. | |
22338 | ||
22339 | 2007-04-24 Simon Martin <simartin@users.sourceforge.net> | |
22340 | ||
22341 | PR diagnostic/25923 | |
22342 | * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a | |
22343 | diagnostic message is being built. | |
22344 | * tree-pretty-print.c (dump_generic_node): Only write the | |
22345 | formatted text into BUFFER's stream if we are not building a | |
22346 | diagnostic message. | |
22347 | * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to | |
22348 | dump_generic_node. | |
22349 | * Makefile.in (toplev.o): Depend on tree-pass.h. | |
22350 | ||
22351 | 2007-04-24 Ian Lance Taylor <iant@google.com> | |
22352 | ||
22353 | PR tree-optimization/31602 | |
22354 | * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for | |
22355 | conditionals in the copied loop header. | |
22356 | * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow | |
22357 | warnings if TREE_NO_WARNING is set. | |
22358 | * doc/invoke.texi (Warning Options): Clarify that | |
22359 | -Wstrict-overflow does not warn about loops. | |
22360 | ||
22361 | 2007-04-24 Janis Johnson <janis187@us.ibm.com> | |
22362 | ||
22363 | * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI, | |
22364 | expand on the comment about _Decimal128 arguments and check the | |
22365 | integer result of the modulus operation; for 64-bit ELF ABI, ensure | |
22366 | that _Decimal128 argument uses even/odd register pair. | |
22367 | (function_arg): Ditto. | |
22368 | ||
22369 | 2007-04-24 Hui-May Chang <hm.chang@apple.com> | |
22370 | ||
22371 | * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER | |
22372 | instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction. | |
22373 | ||
22374 | 2007-04-24 Richard Guenther <rguenther@suse.de> | |
22375 | Olga Golovanevsky <olga@il.ibm.com> | |
22376 | ||
22377 | * fold-const.c (multiple_of_p): Check for bottom | |
22378 | to be zero. | |
22379 | ||
22380 | 2007-04-24 Richard Henderson <rth@redhat.com> | |
22381 | ||
22382 | * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from | |
22383 | IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE. | |
22384 | * libgcc2.c (__floatdisf): Avoid double-word arithmetic when | |
22385 | looking for non-zero bits shifted out. Avoid a recursive call | |
22386 | when constructing the scalar. | |
22387 | (__floatundisf): Likewise. | |
22388 | ||
22389 | 2007-04-24 Nathan Froyd <froydnj@codesourcery.com> | |
22390 | ||
22391 | * dwarf2out.c (field_byte_offset): Move the existing logic | |
22392 | under the control of PCC_BITFIELD_TYPE_MATTERS and just use | |
22393 | the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS. | |
22394 | ||
22395 | 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com> | |
22396 | ||
22397 | PR target/31641 | |
22398 | * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant | |
22399 | length argument of 0 for memset. | |
22400 | (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use | |
22401 | unsigned shift instead of the signed variant. | |
22402 | ||
22403 | 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com> | |
22404 | ||
22405 | * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm", | |
22406 | "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm", | |
22407 | "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm", | |
22408 | "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", | |
22409 | "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm", | |
22410 | "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee", | |
22411 | "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm", | |
22412 | "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm", | |
22413 | "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed. | |
22414 | ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2", | |
22415 | "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3", | |
22416 | "mul<mode>3", "div<mode>3"): Insn definitions added. | |
22417 | ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2", | |
22418 | "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed | |
22419 | to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp. | |
22420 | ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2", | |
22421 | "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3", | |
22422 | "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed. | |
22423 | ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added. | |
22424 | * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT, | |
22425 | TARGET_FLOAT_FORMAT): Macro definitions removed. | |
22426 | (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore. | |
22427 | * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost, | |
22428 | z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der. | |
22429 | (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches. | |
22430 | (s390_gen_rtx_const_DI): Function removed. | |
22431 | * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed. | |
22432 | ||
22433 | 2007-04-24 Richard Sandiford <richard@codesourcery.com> | |
22434 | ||
22435 | * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions | |
22436 | over an external ffs function. | |
22437 | ||
22438 | 2007-04-24 Chao-ying Fu <fu@mips.com> | |
22439 | Richard Sandiford <richard@nildram.co.uk> | |
22440 | ||
22441 | * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document. | |
22442 | * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes. | |
22443 | (smadd_widen_optab, umadd_widen_optab): Define. | |
22444 | * optabs.c (init_optabs): Initialize smadd_widen_optab and | |
22445 | umadd_widen_optab. | |
22446 | * genopinit.c (optabs): Fill in smadd_widen_optab and | |
22447 | umadd_widen_optab. | |
22448 | * expr.c (expand_expr_real_1): Try to use smadd_widen_optab | |
22449 | and umadd_widen_optab to implement multiply-add sequences. | |
22450 | * config/mips/mips.md (*<su>mul_acc_di): Rename to... | |
22451 | (<u>maddsidi4): ...this. Extend condition to include | |
22452 | GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint | |
22453 | of operand 0 to "ka" and use the three-operand form of madd<u> | |
22454 | for TARGET_DSPR2. | |
22455 | * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert | |
22456 | to define_expands. | |
22457 | * config/mips/constraints.md (ka): New register constraint. | |
22458 | ||
22459 | 2007-04-24 Jan Hubicka <j@suse.cz> | |
22460 | ||
22461 | Revert: | |
22462 | ||
22463 | 2007-04-23 Jan Hubicka <jh@suse.cz> | |
22464 | * function.c (init_function_start): Don't init line number info. | |
22465 | (expand_function_end): Update. | |
22466 | (reset_block_changes, record_block_change, finalize_block_changes, | |
22467 | check_block_change, free_block_changes): Kill. | |
22468 | * function.h (reset_block_changes, record_block_change, | |
22469 | finalize_block_changes, check_block_change, free_block_changes): | |
22470 | Remove prototypes. | |
22471 | (struct function): Remove ib_boundaries_block. | |
22472 | * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): | |
22473 | Use curr_insn_locator to initialize locator. | |
22474 | (emit_line_note): Remove. | |
22475 | * cfgexpand.c (expand_gimple_cond_expr): Update. | |
22476 | (construct_exit_block): Likewise. | |
22477 | (tree_expand_cfg): Initialize/finalize locators. | |
22478 | * expr.c (expand_expr_real): Update. | |
22479 | * cfglayout.c (line_locators_locs, line_locators_lines, | |
22480 | file_locators_locs, file_locators_files): Remove. | |
22481 | (set_block_levels): Move to cfgexpand.c. | |
22482 | (insn_locators_initialize): Remove. | |
22483 | (pass_insn_locators_initialize): Remove. | |
22484 | (locations_locators_locs, locations_locators_vals): New static vars. | |
22485 | (curr_location, last_location, curr_block, last_block, curr_rtl_loc): | |
22486 | Likewise. | |
22487 | (insn_locators_alloc, insn_locators_finalize, | |
22488 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
22489 | New functions. | |
22490 | (locator_location): New. | |
22491 | (locator_line, locator_file): Rewrite. | |
22492 | * rtl.h (emit_line_note): Kill. | |
22493 | (insn_locators_alloc, insn_locators_finalize, | |
22494 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
22495 | Declare. | |
22496 | * tree-inline.c (initialize_cfun): Do not initialize | |
22497 | ib_boundaries_block. | |
22498 | * passes.c (pass_insn_locators_initialize): Remove. | |
22499 | ||
22500 | 2007-04-24 Daniel Franke <franke.daniel@gmail.com> | |
22501 | ||
22502 | * doc/invoke.texi: Removed leading '-' from option index entries. | |
22503 | ||
22504 | 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz> | |
22505 | ||
22506 | * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node): | |
22507 | Use phi_nodes_ptr. | |
22508 | (create_phi_node): Use set_phi_nodes. | |
22509 | * omp-low.c (expand_omp_parallel): Use bb_stmt_list. | |
22510 | * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes. | |
22511 | (combine_blocks): Use bb_stmt_list and set_bb_stmt_list. | |
22512 | * tree-flow-inline.h (phi_nodes, set_phi_nodes, | |
22513 | (bsi_start, bsi_last): Use bb_stmt_list. | |
22514 | (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions. | |
22515 | * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list. | |
22516 | Traverse the statements using tsi iterator. | |
22517 | * basic-block.h (struct basic_block_def): Fields stmt_list | |
22518 | and phi_nodes moved to ... | |
22519 | (struct tree_bb_info): ... new structure. | |
22520 | * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list. | |
22521 | (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list. | |
22522 | (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field. | |
22523 | (tree_verify_flow_info): Verify that il.tree is not set for | |
22524 | entry and exit block. | |
22525 | (tree_split_block): Use set_bb_stmt_list. | |
22526 | ||
22527 | 2007-04-23 Mike Stump <mrs@apple.com> | |
22528 | ||
22529 | * config/i386/i386.c (ix86_tune_features | |
22530 | [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on | |
22531 | nocona and core2. | |
22532 | ||
22533 | 2007-04-23 H.J. Lu <hongjiu.lu@intel.com> | |
22534 | ||
22535 | * config/i386/i386.md (prefix_extra): New attribute. | |
22536 | (length): Add prefix_extra. | |
22537 | ||
22538 | * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16. | |
22539 | (sse2_movntv2di): Likewise. | |
22540 | (sse2_cvtps2dq): Likewise. | |
22541 | (sse2_cvtpd2pi): Likewise. | |
22542 | (sse2_cvttpd2pi): Likewise. | |
22543 | (*sse2_cvtpd2ps): Likewise. | |
22544 | (*add<mode>3): Likewise. | |
22545 | (sse2_ssadd<mode>3): Likewise. | |
22546 | (sse2_usadd<mode>3): Likewise. | |
22547 | (*sub<mode>3): Likewise. | |
22548 | (sse2_sssub<mode>3): Likewise. | |
22549 | (sse2_ussub<mode>3): Likewise. | |
22550 | (*mulv8hi3): Likewise. | |
22551 | (*smulv8hi3_highpart): Likewise. | |
22552 | (*umulv8hi3_highpart): Likewise. | |
22553 | (sse2_umulv2siv2di3): Likewise. | |
22554 | (sse2_pmaddwd): Likewise. | |
22555 | (ashr<mode>3): Likewise. | |
22556 | (lshr<mode>3): Likewise. | |
22557 | (ashl<mode>3): Likewise. | |
22558 | (sse2_ashlti3): Likewise. | |
22559 | (sse2_lshrti3): Likewise. | |
22560 | (*umaxv16qi3): Likewise. | |
22561 | (*smaxv8hi3): Likewise. | |
22562 | (*uminv16qi3): Likewise. | |
22563 | (*sminv8hi3): Likewise. | |
22564 | (sse2_eq<mode>3): Likewise. | |
22565 | (sse2_gt<mode>3): Likewise. | |
22566 | (*and<mode>3): Likewise. | |
22567 | (sse2_nand<mode>3): Likewise. | |
22568 | (*ior<mode>3): Likewise. | |
22569 | (*xor<mode>3): Likewise. | |
22570 | (sse2_packsswb): Likewise. | |
22571 | (sse2_packssdw): Likewise. | |
22572 | (sse2_packuswb): Likewise. | |
22573 | (sse2_punpckhbw): Likewise. | |
22574 | (sse2_punpcklbw): Likewise. | |
22575 | (sse2_punpckhwd): Likewise. | |
22576 | (sse2_punpcklwd): Likewise. | |
22577 | (sse2_punpckhdq): Likewise. | |
22578 | (sse2_punpckldq): Likewise. | |
22579 | (sse2_punpckhqdq): Likewise. | |
22580 | (sse2_punpcklqdq): Likewise. | |
22581 | (*sse2_pinsrw): Likewise. | |
22582 | (*sse2_pextrw): Likewise. | |
22583 | (sse2_pshufd_1): Likewise. | |
22584 | (sse2_uavgv16qi3): Likewise. | |
22585 | (sse2_uavgv8hi3): Likewise. | |
22586 | (sse2_psadbw): Likewise. | |
22587 | (sse2_pmovmskb): Likewise. | |
22588 | (*sse2_maskmovdqu): Likewise. | |
22589 | (*sse2_maskmovdqu_rex64): Likewise. | |
22590 | (sse4a_extrqi): Likewise. | |
22591 | (sse4a_extrq): Likewise. | |
22592 | (sse3_lddqu): Set prefix_rep. | |
22593 | (sse3_addsubv4sf3): Likewise. | |
22594 | (sse3_haddv4sf3): Likewise. | |
22595 | (sse3_hsubv4sf3): Likewise. | |
22596 | (sse_cvtss2si): Likewise. | |
22597 | (sse_cvtss2si_2): Likewise. | |
22598 | (sse_cvtss2siq): Likewise. | |
22599 | (sse_cvtss2siq_2): Likewise. | |
22600 | (sse_cvttss2si): Likewise. | |
22601 | (sse_cvttss2siq): Likewise. | |
22602 | (sse2_cvttps2dq): Likewise. | |
22603 | (sse3_movshdup): Likewise. | |
22604 | (sse3_movsldup): Likewise. | |
22605 | (sse2_cvtsd2si): Likewise. | |
22606 | (sse2_cvtsd2si_2): Likewise. | |
22607 | (sse2_cvtsd2siq): Likewise. | |
22608 | (sse2_cvtsd2siq_2): Likewise. | |
22609 | (sse2_cvttsd2si): Likewise. | |
22610 | (sse2_cvttsd2siq): Likewise. | |
22611 | (*sse2_cvtpd2dq): Likewise. | |
22612 | (*sse2_cvttpd2dq): Likewise. | |
22613 | (sse2_pshuflw_1): Likewise. | |
22614 | (sse2_pshufhw_1): Likewise. | |
22615 | (sse4a_insertqi): Likewise. | |
22616 | (sse4a_insertq): Likewise. | |
22617 | (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra. | |
22618 | (ssse3_phadddv4si3): Likewise. | |
22619 | (ssse3_phaddswv8hi3): Likewise. | |
22620 | (ssse3_phsubwv8hi3): Likewise. | |
22621 | (ssse3_phsubdv4si3): Likewise. | |
22622 | (ssse3_phsubswv8hi3): Likewise. | |
22623 | (ssse3_pmaddubswv8hi3): Likewise. | |
22624 | (ssse3_pmulhrswv8hi3): Likewise. | |
22625 | (ssse3_pshufbv16qi3): Likewise. | |
22626 | (ssse3_psign<mode>3): Likewise. | |
22627 | (ssse3_palignrti): Likewise. | |
22628 | (abs<mode>2): Likewise. | |
22629 | (ssse3_phaddwv4hi3): Set prefix_extra. | |
22630 | (ssse3_phadddv2si3): Likewise. | |
22631 | (ssse3_phaddswv4hi3): Likewise. | |
22632 | (ssse3_phsubwv4hi3): Likewise. | |
22633 | (ssse3_phsubdv2si3): Likewise. | |
22634 | (ssse3_phsubswv4hi3): Likewise. | |
22635 | (ssse3_pmaddubswv4hi3): Likewise. | |
22636 | (ssse3_pmulhrswv4hi3): Likewise. | |
22637 | (ssse3_pshufbv8qi3): Likewise. | |
22638 | (ssse3_psign<mode>3): Likewise. | |
22639 | (ssse3_palignrdi): Likewise. | |
22640 | (abs<mode>2): Likewise. | |
22641 | (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF. | |
22642 | (*vec_dupv2df): Set mode to V2DF instead of V4SF. | |
22643 | (sse2_pmovmskb): Set mode to SI instead of V2DF. | |
22644 | ||
22645 | 2007-04-23 Nick Clifton <nickc@redhat.com> | |
22646 | ||
22647 | * params.def: Fix formatting of emacs local variables. | |
22648 | ||
22649 | 2007-04-23 H.J. Lu <hongjiu.lu@intel.com> | |
22650 | ||
22651 | * config/i386/sse.md (sse2_stored): Don't split to inter-unit | |
22652 | move if inter-unit move isn't allowed. | |
22653 | Don't split moving the first element of V2DI to DI to inter-unit | |
22654 | move if inter-unit move isn't allowed. | |
22655 | ||
22656 | 2007-04-23 Richard Guenther <rguenther@suse.de> | |
22657 | ||
22658 | * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS | |
22659 | and CDI_POST_DOMINATORS separately. | |
22660 | ||
22661 | 2007-04-23 Nick Clifton <nickc@redhat.com> | |
22662 | ||
22663 | * c.opt (Wformat-contains-nul): Add warning attribute. | |
22664 | ||
22665 | 2007-04-23 Jan Hubicka <jh@suse.cz> | |
22666 | ||
22667 | * function.c (init_function_start): Don't init line number info. | |
22668 | (expand_function_end): Update. | |
22669 | (reset_block_changes, record_block_change, finalize_block_changes, | |
22670 | check_block_change, free_block_changes): Kill. | |
22671 | * function.h (reset_block_changes, record_block_change, | |
22672 | finalize_block_changes, check_block_change, free_block_changes): | |
22673 | Remove prototypes. | |
22674 | (struct function): Remove ib_boundaries_block. | |
22675 | * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): | |
22676 | Use curr_insn_locator to initialize locator. | |
22677 | (emit_line_note): Remove. | |
22678 | * cfgexpand.c (expand_gimple_cond_expr): Update. | |
22679 | (construct_exit_block): Likewise. | |
22680 | (tree_expand_cfg): Initialize/finalize locators. | |
22681 | * expr.c (expand_expr_real): Update. | |
22682 | * cfglayout.c (line_locators_locs, line_locators_lines, | |
22683 | file_locators_locs, file_locators_files): Remove. | |
22684 | (set_block_levels): Move to cfgexpand.c. | |
22685 | (insn_locators_initialize): Remove. | |
22686 | (pass_insn_locators_initialize): Remove. | |
22687 | (locations_locators_locs, locations_locators_vals): New static vars. | |
22688 | (curr_location, last_location, curr_block, last_block, curr_rtl_loc): | |
22689 | Likewise. | |
22690 | (insn_locators_alloc, insn_locators_finalize, | |
22691 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
22692 | New functions. | |
22693 | (locator_location): New. | |
22694 | (locator_line, locator_file): Rewrite. | |
22695 | * rtl.h (emit_line_note): Kill. | |
22696 | (insn_locators_alloc, insn_locators_finalize, | |
22697 | set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): | |
22698 | Declare. | |
22699 | * tree-inline.c (initialize_cfun): Do not initialize | |
22700 | ib_boundaries_block. | |
22701 | * passes.c (pass_insn_locators_initialize): Remove. | |
22702 | ||
22703 | 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
22704 | ||
22705 | PR middle-end/31448 | |
22706 | * expr.c (reduce_to_bit_field_precision): Handle | |
22707 | CONST_INT rtx's. | |
22708 | ||
22709 | 2007-04-22 Uros Bizjak <ubizjak@gmail.com> | |
22710 | ||
22711 | PR tree-optimization/24659 | |
22712 | * optabs.h (enum optab_index) [OTI_vec_unpacks_hi, | |
22713 | OTI_vec_unpacks_lo]: Update comment to mention floating point operands. | |
22714 | (vec_pack_trunc_optab): Rename from vec_pack_mod_optab. | |
22715 | * genopinit.c (optabs): Rename vec_pack_mod_optab | |
22716 | to vec_pack_trunc_optab. | |
22717 | * tree-vect-transform.c (vectorizable_type_demotion): Do not fail | |
22718 | early for scalar floating point operands for NOP_EXPR. | |
22719 | (vectorizable_type_promotion): Ditto. | |
22720 | * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return | |
22721 | vec_pack_trunc_optab. | |
22722 | (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab. | |
22723 | ||
22724 | * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR. | |
22725 | * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]: | |
22726 | Rename from VEC_PACK_MOD_EXPR. | |
22727 | (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto. | |
22728 | * expr.c (expand_expr_real_1): Ditto. | |
22729 | * tree-inline.c (estimate_num_insns_1): Ditto. | |
22730 | * tree-vect-generic.c (expand_vector_operations_1): Ditto. | |
22731 | ||
22732 | * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander. | |
22733 | (vec_unpacks_lo_v4sf): Ditto. | |
22734 | (vec_pack_trunc_v2df): Ditto. | |
22735 | (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi. | |
22736 | (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. | |
22737 | (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di. | |
22738 | ||
22739 | * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from | |
22740 | vec_pack_mod_v8hi. | |
22741 | (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. | |
22742 | ||
22743 | * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]: | |
22744 | Rename from VEC_PACK_MOD_EXPR. This expression also represent | |
22745 | packing of floating point operands. | |
22746 | [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also | |
22747 | represent unpacking of floating point operands. | |
22748 | * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation. | |
22749 | [vec_unpacks_hi]: Ditto. | |
22750 | [vec_unpacks_lo]: Ditto. | |
22751 | ||
22752 | 2007-04-22 Jan Hubicka <jh@suse.cz> | |
22753 | ||
22754 | * final.c (rest_of_handle_final): Call | |
22755 | targetm.asm_out.constructor/targetm.asm_out.destructor | |
22756 | * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set | |
22757 | proper priority via decl_*_priority_insert. | |
22758 | * c-common.c (c_expand_body): Likewise. | |
22759 | ||
22760 | 2007-04-22 Richard Guenther <rguenther@suse.de> | |
22761 | ||
22762 | PR tree-optimization/29789 | |
22763 | * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts. | |
22764 | (rewrite_reciprocal): New helper split out from | |
22765 | determine_invariantness_stmt. | |
22766 | (rewrite_bittest): Likewise. | |
22767 | (determine_invariantness_stmt): Rewrite (A >> B) & 1 to | |
22768 | A & (1 << B) if (1 << B) is loop invariant but (A >> B) | |
22769 | is not. | |
22770 | ||
22771 | 2007-04-22 Revital Eres <eres@il.ibm.com> | |
22772 | ||
22773 | * loop-unroll.c (var_to_expand): New field to support also | |
22774 | insns of the form x = something + x. | |
22775 | (analyze_insn_to_expand_var): Use it. | |
22776 | (expand_var_during_unrolling): Likewise. | |
22777 | ||
22778 | 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz> | |
22779 | ||
22780 | * predict.c: Include pointer-set.h. | |
22781 | (bb_predictions): New variable. | |
22782 | (tree_predicted_by_p, tree_predict_edge, | |
22783 | remove_predictions_associated_with_edge): Use bb_predictions map | |
22784 | instead of bb->predictions. | |
22785 | (clear_bb_predictions, assert_is_empty): New functions. | |
22786 | (combine_predictions_for_bb): Use bb_predictions map. Call | |
22787 | clear_bb_predictions. | |
22788 | (tree_estimate_probability): Create and free bb_predictions map. | |
22789 | * Makefile.in (predict.o): Add pointer-set.h dependency. | |
22790 | * basic-block.h (struct basic_block_def): Remove predictions | |
22791 | field. | |
22792 | * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions. | |
22793 | ||
22794 | 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org> | |
22795 | ||
22796 | PR target/31480 | |
22797 | * config/sh/sh.md (length): Check if prev_nonnote_insn (insn) | |
22798 | is null. | |
22799 | ||
22800 | 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
22801 | ||
22802 | * timevar.c (timevar_print): Change reference of --disable-checking to | |
22803 | --enable-checking=release. Also warn if assert checking is disabled. | |
22804 | ||
22805 | 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
22806 | ||
22807 | PR C/30265 | |
22808 | * c-gimplifier.c (gimplify_compound_literal_expr): Mark the | |
22809 | decl as addressable if the compound literal was marked as | |
22810 | addressable. | |
22811 | Mark the decl as a gimple register if it is a complex or | |
22812 | vector decl and does not live in memory. | |
22813 | ||
22814 | 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
22815 | ||
22816 | * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs. | |
22817 | (GENERIC_NEXT): New function macro. | |
22818 | (PHI_CHAIN): Use phi_node's new chain variable. | |
22819 | (tree_phi_node): Change tree_common to tree_base | |
22820 | and add the chain field. | |
22821 | * tree-phinodes.c (make_phi_node): Don't set | |
22822 | TREE_TYPE on the new node. | |
22823 | * c-decl.c (lang_tree_node): Use GENERIC_NEXT | |
22824 | instead of checking GIMPLE_TUPLE_P in chain_next. | |
22825 | * tree-vect-transform.c | |
22826 | (get_initial_def_for_induction): Look at | |
22827 | PHI_RESULT_TREE for the type of the phi node. | |
22828 | (update_vuses_to_preheader): Use PHI_CHAIN | |
22829 | instead of TREE_CHAIN on the phi node. | |
22830 | * tree-ssa-structalias.c (compute_points_to_sets): | |
22831 | Likewise. | |
22832 | (ipa_pta_execute): Likewise. | |
22833 | ||
22834 | 2007-04-21 Richard Guenther <rguenther@suse.de> | |
22835 | ||
22836 | PR middle-end/31136 | |
22837 | * fold-const.c (fold_unary): Call fold_convert_const on the | |
22838 | original tree. | |
22839 | ||
22840 | 2007-04-21 Alexandre Oliva <aoliva@redhat.com> | |
22841 | ||
22842 | * gcse.c (store_killed_in_insn): Handle PARALLELs. | |
22843 | (store_killed_in_pat): New. | |
22844 | ||
22845 | 2007-04-20 Richard Henderson <rth@redhat.com> | |
22846 | ||
22847 | PR target/31628 | |
22848 | * config/i386/i386.c (type_has_variadic_args_p): Look for any | |
22849 | TREE_LIST with a void_type_node value, not void_list_node exactly. | |
22850 | ||
22851 | 2007-04-21 Douglas Gregor <doug.gregor@gmail.com> | |
22852 | ||
22853 | * doc/standards.texi: Re-arrange into language-specific | |
22854 | subsections. Add a C++ section, documenting which standards we | |
22855 | support. | |
22856 | ||
22857 | 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz> | |
22858 | ||
22859 | * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex. | |
22860 | * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops. | |
22861 | ||
22862 | 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com> | |
22863 | ||
22864 | * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include | |
22865 | ecrti.o and crtbegin.o. | |
22866 | (LIB_DEFAULT_SPEC): Include -lc. | |
22867 | (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o. | |
22868 | ||
22869 | 2007-04-20 Richard Henderson <rth@redhat.com> | |
22870 | ||
22871 | PR target/28623 | |
22872 | * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset | |
22873 | argument; update all callers. | |
22874 | (get_unaligned_offset): New. | |
22875 | * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use | |
22876 | get_unaligned_address, just pass on the address directly. | |
22877 | (unaligned_extendqidi): Use gen_lowpart instead of open-coding | |
22878 | the subreg in the helper patterns. | |
22879 | (unaligned_extendqidi_le): Use get_unaligned_offset. | |
22880 | (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise. | |
22881 | (unaligned_extendhidi_be): Likewise. | |
22882 | (unaligned_extendhidi): Tidy. | |
22883 | * config/alpha/alpha-protos.h: Update. | |
22884 | ||
22885 | 2007-04-20 Richard Henderson <rth@redhat.com> | |
22886 | ||
22887 | * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove. | |
22888 | (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove. | |
22889 | * config/alpha/linux.h (CPP_SPEC): Undef before redefine. | |
22890 | * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. | |
22891 | * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. | |
22892 | (CPP_SPEC): Don't include %(cpp_subtarget). | |
22893 | * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC. | |
22894 | (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. | |
22895 | * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly. | |
22896 | ||
22897 | 2007-04-20 Jakub Jelinek <jakub@redhat.com> | |
22898 | ||
22899 | * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED | |
22900 | for __builtin_ia32_cmpordss. | |
22901 | ||
22902 | PR tree-optimization/31632 | |
22903 | * fold-const.c (fold_binary): Use op0 and op1 instead of arg0 | |
22904 | and arg1 for optimizations of comparison against min/max values. | |
22905 | Fold arg0 to arg1's type for optimizations of comparison against | |
22906 | min+1 and max-1 values. | |
22907 | ||
22908 | 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com> | |
22909 | ||
22910 | * reload.c (combine_reloads): When trying to use a dying register, | |
22911 | check whether it's uninitialized and don't use if so. | |
22912 | ||
22913 | 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com> | |
22914 | ||
22915 | * fold-const.c: Remove prototypes for native_encode_expr and | |
22916 | native_interpret_expr. | |
22917 | (native_encode_expr): Make non-static. | |
22918 | (native_interpret_expr): Likewise. | |
22919 | * tree.h: Add prototypes for the above. | |
22920 | ||
22921 | 2007-04-19 Joseph Myers <joseph@codesourcery.com> | |
22922 | ||
22923 | * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2, | |
22924 | *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2, | |
22925 | *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2, | |
22926 | spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr, | |
22927 | tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr): | |
22928 | Add length attributes. | |
22929 | ||
22930 | 2007-04-19 Janis Johnson <janis187@us.ibm.com> | |
22931 | ||
22932 | * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined, | |
22933 | not that it is 1. | |
22934 | ||
22935 | * c-cppbuiltin.c (c_cpp_builtins): Remove definition of | |
22936 | __STDC_WANT_DEC_FP__. | |
22937 | ||
22938 | 2007-04-19 Joseph Myers <joseph@codesourcery.com> | |
22939 | ||
22940 | * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu* | |
22941 | for long double compatibility. | |
22942 | * configure: Regenerate. | |
22943 | ||
22944 | 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr> | |
22945 | ||
22946 | PR rtl-optimization/29841 | |
22947 | * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional | |
22948 | trap instructions. | |
22949 | * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions | |
22950 | that may cause control flow transfer from being moved. | |
22951 | ||
22952 | 2007-04-18 Jan Hubicka <jh@suse.cz> | |
22953 | ||
22954 | * fold-const.c (div_if_zero_remainder): Do signed divide for pointer | |
22955 | types. | |
22956 | ||
22957 | 2007-04-18 Eric Christopher <echristo@apple.com> | |
22958 | ||
22959 | * config/rs6000/darwin.md (load_macho_picbase): Use link register | |
22960 | only. Update operands. | |
22961 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller. | |
22962 | * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from | |
22963 | link register to pic register. | |
22964 | ||
22965 | 2007-04-18 Dirk Mueller <dmueller@suse.de> | |
22966 | ||
22967 | PR diagnostic/31227 | |
22968 | * tree-vrp.c (search_for_addr_array): New. | |
22969 | (check_array_bounds): Suppress warning about | |
22970 | address taken of array refs if its not de-referenced. | |
22971 | ||
22972 | 2007-04-18 Dorit Nuzman <dorit@il.ibm.com> | |
22973 | ||
22974 | * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL. | |
22975 | * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux. | |
22976 | ||
22977 | * tree-vectorizer.h (NITERS_KNOWN_P): New. | |
22978 | * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P | |
22979 | instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info. | |
22980 | ||
22981 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Add | |
22982 | dump print. | |
22983 | (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a | |
22984 | print message. | |
22985 | (vect_analyze_scalar_cycles): Fix indentation. | |
22986 | (vect_enhance_data_refs_alignment): Fix check in case of peeling. | |
22987 | (vect_mark_relevant): Include phis in relevance analysis. | |
22988 | ||
22989 | * tree-vect-transform.c (vect_transform_loop): Add an assert. | |
22990 | ||
22991 | 2007-04-18 Anatoly Sokolov <aesok@post.ru> | |
22992 | ||
22993 | * config/avr/avr.c (ptrreg_to_str): Replace error() with | |
22994 | output_operand_lossage(). | |
22995 | ||
22996 | 2007-04-18 Dorit Nuzman <dorit@il.ibm.com> | |
22997 | ||
22998 | * tree-vect-transform.c (get_initial_def_for_reduction): Clean away | |
22999 | the unused code for reduction without adjust-in-epilog to simplify the | |
23000 | function. | |
23001 | ||
23002 | 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com> | |
23003 | ||
23004 | * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant. | |
23005 | (S390_TDC_NEGATIVE_ZERO): New constant. | |
23006 | (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant. | |
23007 | (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant. | |
23008 | (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant. | |
23009 | (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant. | |
23010 | (S390_TDC_POSITIVE_INFINITY): New constant. | |
23011 | (S390_TDC_NEGATIVE_INFINITY): New constant. | |
23012 | (S390_TDC_POSITIVE_QUIET_NAN): New constant. | |
23013 | (S390_TDC_NEGATIVE_QUIET_NAN): New constant. | |
23014 | (S390_TDC_POSITIVE_SIGNALING_NAN): New constant. | |
23015 | (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant. | |
23016 | (S390_TDC_INFINITY): New constant. | |
23017 | * config/s390/s390.c (s390_canonicalize_comparison): Renamed | |
23018 | UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like | |
23019 | optimization for UNSPEC_CCZ_TO_INT. | |
23020 | * config/s390/s390.md ("*TDC_insn_<mode>"): New insn. | |
23021 | ("*ccz_to_int"): New insn. | |
23022 | ("isinf<mode>2"): New insn. | |
23023 | (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT. | |
23024 | (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT. | |
23025 | (UNSPEC_CCZ_TO_INT): New constant. | |
23026 | ||
23027 | 2007-04-18 Richard Guenther <rguenther@suse.de> | |
23028 | ||
23029 | PR tree-optimization/19431 | |
23030 | PR tree-optimization/21463 | |
23031 | * tree-pass.h (pass_phiprop): Declare. | |
23032 | * passes.c (init_optimization_passes): New phiprop pass. | |
23033 | * tree-ssa-forwprop.c (struct phiprop_d): New structure. | |
23034 | (phivn_valid_p): New helper function. | |
23035 | (phiprop_insert_phi): Likewise. | |
23036 | (propagate_with_phi): Likewise. | |
23037 | (tree_ssa_phiprop): New propagator propagating loads | |
23038 | through phi nodes if profitable. | |
23039 | ||
23040 | 2007-04-18 Dorit Nuzman <dorit@il.ibm.com> | |
23041 | ||
23042 | * tree-vect-analyze.c (process_use): New function. | |
23043 | (vect_mark_stmts_to_be_vectorized): Factor out code to process_use. | |
23044 | Check phis in all bbs. | |
23045 | * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant | |
23046 | assert. | |
23047 | ||
23048 | 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com> | |
23049 | ||
23050 | * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way | |
23051 | we use REG_EQUAL. | |
23052 | ||
23053 | 2007-04-17 Anatoly Sokolov <aesok@post.ru> | |
23054 | ||
23055 | PR target/30483 | |
23056 | * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with | |
23057 | error(). | |
23058 | ||
23059 | 2007-04-17 H.J. Lu <hongjiu.lu@intel.com> | |
23060 | ||
23061 | * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand | |
23062 | on "0". | |
23063 | (sse_vmmulv4sf3): Likewise. | |
23064 | (sse2_vmaddv2df3): Likewise. | |
23065 | (sse2_vmmulv2df3): Likewise. | |
23066 | ||
23067 | 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz> | |
23068 | ||
23069 | PR rtl-optimization/31360 | |
23070 | * cfgloopanal.c (target_small_cost, target_pres_cost): Removed. | |
23071 | (target_reg_cost): New. | |
23072 | (init_set_costs): Initialize target_reg_cost. Add comments | |
23073 | regarding the rationale of the costs. | |
23074 | (global_cost_for_size): Renamed to... | |
23075 | (estimate_reg_pressure_cost): ... and simplify. Decrease importance | |
23076 | of register pressure. | |
23077 | * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use | |
23078 | estimate_reg_pressure_cost. Add number of ivs. | |
23079 | (determine_set_costs): Dump target_reg_cost. | |
23080 | * loop-invariant.c (gain_for_invariant): Use | |
23081 | estimate_reg_pressure_cost. Removed n_inv_uses argument. | |
23082 | (best_gain_for_invariant, find_invariants_to_move): Remove | |
23083 | n_inv_uses. | |
23084 | * cfgloop.h (target_small_cost, target_pres_cost): Removed. | |
23085 | (target_reg_cost): Declare. | |
23086 | (global_cost_for_size): Declaration removed. | |
23087 | (estimate_reg_pressure_cost): Declare. | |
23088 | ||
23089 | 2007-04-17 Peter Bergner <bergner@vnet.ibm.com> | |
23090 | ||
23091 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode | |
23092 | regnos into even/odd register pairs. | |
23093 | * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and | |
23094 | TDmode similar to the other floating point modes. | |
23095 | [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode. | |
23096 | * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New | |
23097 | define_expand's. | |
23098 | (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr, | |
23099 | nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's. | |
23100 | (movdd_hardfloat64): Use TARGET_MFPGPR. | |
23101 | ||
23102 | 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com> | |
23103 | ||
23104 | * reload1.c (delete_output_reload): Don't count output in n_inherited. | |
23105 | ||
23106 | Revert | |
23107 | 2005-01-05 Richard Henderson <rth@redhat.com> | |
23108 | PR rtl-opt/10692 | |
23109 | * reload1.c (do_input_reload): Restrict the optimization deleteing | |
23110 | a previous output reload to RELOAD_FOR_INPUT. | |
23111 | ||
23112 | 2007-04-17 Dorit Nuzman <dorit@il.ibm.com> | |
23113 | ||
23114 | * tree-vectorizer.h (stmt_vec_info_type): Add enum value | |
23115 | induc_vec_info_type. | |
23116 | (vectorizable_induction): New function declaration. | |
23117 | * tree-vect-transform.c (get_initial_def_for_induction): No need to | |
23118 | check if already vectorized. Find first place in BB where new stmts | |
23119 | can be inserted. Takes only one argument. | |
23120 | (vectorizable_induction): New function. | |
23121 | (vect_transform_stmt): Add case for induc_vec_info_type to call | |
23122 | vectorizable_induction. | |
23123 | (vect_transform_loop): Consider phis for vectorization. | |
23124 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify | |
23125 | condition. | |
23126 | (analyze_operations): Call vectorizable_induction when analyzing phis. | |
23127 | Fix comment. | |
23128 | (vect_mark_stmts_to_be_vectorized): Remove redundant checks. | |
23129 | (vect_mark_relevant): Include phis in relevance analysis. | |
23130 | (vect_mark_stmts_to_be_vectorize): Likewise. | |
23131 | * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts. | |
23132 | ||
23133 | 2007-04-16 Lawrence Crowl <crowl@google.com> | |
23134 | ||
23135 | * doc/invoke.texi (Debugging Options): Add documentation for the | |
23136 | -femit-struct-debug options -femit-struct-debug-baseonly, | |
23137 | -femit-struct-debug-reduced, and | |
23138 | -femit-struct-debug-detailed[=...]. | |
23139 | ||
23140 | * c-opts.c (c_common_handle_option): Add | |
23141 | OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced, | |
23142 | and OPT_femit_struct_debug_detailed_. | |
23143 | * c.opt: Add specifications for | |
23144 | -femit-struct-debug-baseonly, -femit-struct-debug-reduced, | |
23145 | and -femit-struct-debug-detailed[=...]. | |
23146 | * opts.c (set_struct_debug_option): Parse the | |
23147 | -femit-struct-debug-... options. | |
23148 | * opts.c (matches_main_base, main_input_basename, | |
23149 | main_input_baselength, base_of_path, matches_main_base): Add | |
23150 | variables and functions to compare header base name to compilation | |
23151 | unit base name. | |
23152 | * opts.c (should_emit_struct_debug): Add to determine to emit a | |
23153 | structure based on the option. | |
23154 | (dump_struct_debug) Also disabled function to debug this | |
23155 | function. | |
23156 | * opts.c (handle_options): Save the base name of the | |
23157 | compilation unit. | |
23158 | ||
23159 | * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define. | |
23160 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add. | |
23161 | This hook indicates if a type is generic. Set it by default | |
23162 | to "never generic". | |
23163 | * langhooks.h (struct lang_hooks_for_types): Add a new hook | |
23164 | to determine if a struct type is generic or not. | |
23165 | * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook. | |
23166 | * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook. | |
23167 | * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook | |
23168 | with live C++ hook. | |
23169 | ||
23170 | * flags.h (enum debug_info_usage): Add an enumeration to describe | |
23171 | a program's use of a structure type. | |
23172 | * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter | |
23173 | to indicate the program's usage of the type. Filter structs based | |
23174 | on the -femit-struct-debug-... specification. | |
23175 | (gen_type_die): Split into two routines, gen_type_die and | |
23176 | gen_type_die_with_usage. gen_type_die is now a wrapper | |
23177 | that assumes direct usage. | |
23178 | (gen_type_die_with_usage): Replace calls to gen_type_die | |
23179 | with gen_type_die_with_usage adding the program usage of | |
23180 | the referenced type. | |
23181 | (dwarf2out_imported_module_or_decl): Suppress struct debug | |
23182 | information using should_emit_struct_debug when appropriate. | |
23183 | ||
23184 | 2007-04-16 Ian Lance Taylor <iant@google.com> | |
23185 | ||
23186 | PR tree-optimization/31522 | |
23187 | * tree-vrp.c (vr_phi_edge_counts): New static variable. | |
23188 | (vrp_initialize): Allocate vr_phi_edge_counts. | |
23189 | (vrp_visit_phi_node): Don't push to infinity if we saw a new | |
23190 | executable edge. Drop test for all constants. | |
23191 | (vrp_finalize): Free vrp_phi_edge_counts. | |
23192 | ||
23193 | * doc/cpp.texi (Common Predefined Macros): Clarify description of | |
23194 | __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__. | |
23195 | ||
23196 | * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer | |
23197 | predecessors at head rather than tail. | |
23198 | ||
23199 | 2007-04-16 Matthias Klose <doko@debian.org> | |
23200 | ||
23201 | * config/alpha/linux.h (CPP_SPEC): Define. | |
23202 | * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend. | |
23203 | ||
23204 | 2007-04-16 Aldy Hernandez <aldyh@redhat.com> | |
23205 | ||
23206 | * function.h: Remove sequence_stack extern declaration. | |
23207 | ||
23208 | 2007-04-16 Kazu Hirata <kazu@codesourcery.com> | |
23209 | ||
23210 | * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on | |
23211 | TARGET_FIDOA. | |
23212 | (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is | |
23213 | defined. | |
23214 | ||
23215 | 2007-04-16 Anatoly Sokolov <aesok@post.ru> | |
23216 | ||
23217 | * config/avr/avr.c (avr_arch_types): Rearranging array. | |
23218 | (enum avr_arch): Add. | |
23219 | (avr_mcu_types): Use avr_arch enumeration constants instead of | |
23220 | numbers. | |
23221 | * config/avr/avr.h (LINK_SPEC): Simplify. | |
23222 | ||
23223 | 2007-04-16 Kazu Hirata <kazu@codesourcery.com> | |
23224 | ||
23225 | * config/m68k/m68k.c (m68k_libcall_value, | |
23226 | m68k_function_value): Use macros for register names more. | |
23227 | ||
23228 | * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG | |
23229 | instead. | |
23230 | (M68K_REGNAME): Use A6_REG. | |
23231 | * config/m68k/m68k.md (FP_REG): Rename to A6_REG. | |
23232 | ||
23233 | 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
23234 | ||
23235 | PR middle-end/28071 | |
23236 | * sched-int.h (struct deps): Split field 'pending_lists_length' into | |
23237 | 'pending_read_list_length' and 'pending_write_list_length'. Update | |
23238 | comment. | |
23239 | * sched-deps.c (add_insn_mem_dependence): Change signature. Update | |
23240 | to handle two length counters instead of one. Update all uses. | |
23241 | (flush_pending_lists, sched_analyze_1, init_deps): Update to handle | |
23242 | two length counters instead of one. | |
23243 | * sched-rgn.c (propagate_deps): Update to handle two length counters | |
23244 | instead of one. | |
23245 | ||
23246 | 2007-04-16 H.J. Lu <hongjiu.lu@intel.com> | |
23247 | ||
23248 | PR target/31582 | |
23249 | * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a | |
23250 | copy of source, pass it to ix86_expand_vector_set and return | |
23251 | it as target. | |
23252 | ||
23253 | 2007-04-16 David Ung <davidu@mips.com> | |
23254 | Joseph Myers <joseph@codesourcery.com> | |
23255 | ||
23256 | * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF, | |
23257 | PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define. | |
23258 | * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data): | |
23259 | Add 74K processor information. | |
23260 | * config/mips/mips.md: Include 74k.md. | |
23261 | (cpu): Add 74kc,74kf,74kx. | |
23262 | (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout. | |
23263 | * config/mips/74k.md: New. | |
23264 | * doc/invoke.texi (MIPS Options): Document 74K support. | |
23265 | ||
23266 | 2007-04-16 Dorit Nuzman <dorit@il.ibm.com> | |
23267 | ||
23268 | * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to | |
23269 | vectorizable_* functions. | |
23270 | * tree-vect-transform.c (vectorizable_call): Add check for | |
23271 | STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P. | |
23272 | (vectorizable_store): likewise. | |
23273 | (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE. | |
23274 | Add comments. | |
23275 | (vectorizable_operation, vectorizable_type_demotion): Likewise. | |
23276 | (vectorizable_type_promotion, vectorizable_load): Likewise. | |
23277 | (vectorizable_live_operation, vectorizable_condition): Likewise. | |
23278 | (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and | |
23279 | STMT_VINFO_LIVE_P. | |
23280 | (vect_transform_stmt): Reorganize calls to vectorizable_* functions. | |
23281 | ||
23282 | 2007-04-15 Kazu Hirata <kazu@codesourcery.com> | |
23283 | ||
23284 | * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for | |
23285 | register numbers more. | |
23286 | * config/m68k/m68k.h (STACK_POINTER_REGNUM, | |
23287 | FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM, | |
23288 | M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE, | |
23289 | FUNCTION_VALUE_REGNO_P): Likewise. | |
23290 | * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM, | |
23291 | STATIC_CHAIN_REGNUM): Likewise. | |
23292 | * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise. | |
23293 | * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM, | |
23294 | STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise. | |
23295 | * config/m68k/m68k.md (FP_REG): New. | |
23296 | ||
23297 | 2007-04-15 Kazu Hirata <kazu@codesourcery.com> | |
23298 | ||
23299 | * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit | |
23300 | alignment on fido. | |
23301 | ||
23302 | 2007-04-15 Kazu Hirata <kazu@codesourcery.com> | |
23303 | ||
23304 | * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md, | |
23305 | tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix | |
23306 | comment typos. | |
23307 | ||
23308 | 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz> | |
23309 | ||
23310 | * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore | |
23311 | cold loops. | |
23312 | ||
23313 | 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
23314 | ||
23315 | PR c/31520 | |
23316 | * c-decl.c (finish_decl): Grab the type of the decl after the call | |
23317 | to store_init_value. | |
23318 | ||
23319 | 2007-04-14 Steven Bosscher <steven@gcc.gnu.org> | |
23320 | ||
23321 | * common.opt (fforward-propagate): Fix "Optimization" annotation. | |
23322 | ||
23323 | 2007-04-14 Jakub Jelinek <jakub@redhat.com> | |
23324 | ||
23325 | PR c++/25874 | |
23326 | * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free | |
23327 | dominators, post dominators and cleanup cfg before returning. | |
23328 | ||
23329 | 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com> | |
23330 | ||
23331 | * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied. | |
23332 | * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives. | |
23333 | ||
23334 | 2007-04-14 Kazu Hirata <kazu@codesourcery.com> | |
23335 | ||
23336 | * config.gcc: Recognize fido. | |
23337 | * config/m68k/m68k-devices.def (fidoa): New. | |
23338 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define | |
23339 | __mfido__. | |
23340 | (FL_FIDOA, TARGET_FIDOA): New. | |
23341 | * config/m68k/m68k.opt (mfidoa): New. | |
23342 | ||
23343 | 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
23344 | ||
23345 | PR middle-end/31322 | |
23346 | * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall | |
23347 | when a personality function is used. | |
23348 | ||
23349 | 2007-04-13 Bob Wilson <bob.wilson@acm.org> | |
23350 | ||
23351 | * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN. | |
23352 | ||
23353 | 2007-04-13 Mike Stump <mrs@apple.com> | |
23354 | ||
23355 | * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so | |
23356 | we can... | |
23357 | * config/darwin.opt (fapple-kext): Make C++ only. | |
23358 | * config/darwin.c (darwin_override_options): Remove code to ensure | |
23359 | -fapple-kext is given for C++ only. | |
23360 | ||
23361 | 2007-04-13 Richard Sandiford <richard@codesourcery.com> | |
23362 | ||
23363 | * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define. | |
23364 | * config/mips/mips.c (override_options): Call | |
23365 | SUBTARGET_OVERRIDE_OPTIONS, if defined. | |
23366 | ||
23367 | 2007-04-13 H.J. Lu <hongjiu.lu@intel.com> | |
23368 | ||
23369 | * config/i386/i386.opt (msvr3-shlib): Removed. | |
23370 | ||
23371 | * doc/invoke.texi: Remove -msvr3-shlib. | |
23372 | ||
23373 | 2007-04-13 H.J. Lu <hongjiu.lu@intel.com> | |
23374 | ||
23375 | * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction | |
23376 | with "popcnt" instruction. | |
23377 | ||
23378 | 2007-04-13 Richard Guenther <rguenther@suse.de> | |
23379 | ||
23380 | PR tree-optimization/21258 | |
23381 | * tree-vrp.c (compare_case_labels): New helper. | |
23382 | (find_switch_asserts): New function. | |
23383 | (find_assert_locations): Call it for SWITCH_EXPRs. | |
23384 | ||
23385 | 2007-04-13 Uros Bizjak <ubizjak@gmail.com> | |
23386 | ||
23387 | * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387. | |
23388 | * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this | |
23389 | check is now implied in X87_FLOAT_MODE_P. | |
23390 | (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto. | |
23391 | (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto. | |
23392 | (fix_trunc<mode>_i386_fisttp): Ditto. | |
23393 | (fix_trunc<mode>_i387_fisttp_with_temp): Ditto. | |
23394 | (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto. | |
23395 | (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto. | |
23396 | (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto. | |
23397 | (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto. | |
23398 | (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto. | |
23399 | (unnamed_splitters): Ditto. | |
23400 | * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG | |
23401 | for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with | |
23402 | FIRST_SSE_REG for local functions when SSE math is enabled or | |
23403 | for functions with sseregparm attribute. | |
23404 | (standard_80387_constant_p): Return -1 if mode is not | |
23405 | X87_FLOAT_MODE_P. | |
23406 | (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P. | |
23407 | (ix86_expand_compare): Ditto. | |
23408 | (ix86_expand_carry_flag_compare): Ditto. | |
23409 | (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead | |
23410 | of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not | |
23411 | DECIMAL_FLOAT_MODE_P. | |
23412 | (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead | |
23413 | of SCALAR_FLOAT_MODE_P. | |
23414 | (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ... | |
23415 | [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P | |
23416 | checks before FLOAT_MODE_P. | |
23417 | [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks | |
23418 | before FLOAT_MODE_P. | |
23419 | [DIV]: Ditto. | |
23420 | [NEG]: Ditto. | |
23421 | [ABS]: Ditto. | |
23422 | [SQRT]: Ditto. | |
23423 | [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P. | |
23424 | ||
23425 | 2007-04-12 Paolo Bonzini <bonzini@gnu.org> | |
23426 | Charles Wilson <libtool@cwilson.fastmail.fm> | |
23427 | ||
23428 | * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove. | |
23429 | (libgcc.mvars): Don't depend on them. | |
23430 | * configure.ac (as, collect-ld, nm): Create from exec-tool.in. | |
23431 | * exec-tool.in: New. | |
23432 | ||
23433 | 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com> | |
23434 | ||
23435 | * doc/invoke.text (--help): Document --help=common. | |
23436 | ||
23437 | 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net> | |
23438 | ||
23439 | * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords. | |
23440 | ||
23441 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23442 | ||
23443 | * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H). | |
23444 | * genemit.c (main): Emit #include "integrate.h". | |
23445 | * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type. | |
23446 | (LOADGP_RTP): New mips_loadgp_style. | |
23447 | * config/mips/mips.h: Include config/vxworks-dummy.h. | |
23448 | (TARGET_RTP_PIC): New macro. | |
23449 | (TARGET_USE_GOT): Return true for TARGET_RTP_PIC. | |
23450 | (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP. | |
23451 | (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables | |
23452 | for TARGET_RTP_PIC. | |
23453 | * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down | |
23454 | -mvxworks-pic when using -mrtp and a PIC option. | |
23455 | * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP | |
23456 | for RTP PIC. | |
23457 | (mips_symbolic_constant_p, mips_symbolic_address_p) | |
23458 | (mips_symbol_insns): Handle SYMBOL_HALF. | |
23459 | (override_options): Warn about -G and -mrtp being used together. | |
23460 | Initialize mips_lo_relocs[SYMBOL_HALF]. | |
23461 | (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC. | |
23462 | (mips_emit_loadgp): Handle LOADGP_RTP. | |
23463 | (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP. | |
23464 | * config/mips/mips.md (loadgp_rtp): New insn and splitter. | |
23465 | (tablejump): Handle function-relative case table entries if | |
23466 | TARGET_RTP_PIC. | |
23467 | * config/mips/predicates.md (symbol_ref_operand): New predicate. | |
23468 | ||
23469 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23470 | ||
23471 | * config/mips/mips.md (load_call<mode>): Allow any general register. | |
23472 | destination. | |
23473 | (sibcall_value_internal, sibcall_value_multiple_internal) | |
23474 | (call_value_internal, call_value_split, call_value_multiple_internal) | |
23475 | (call_value_multiple_split): Remove constraints from operand 0. | |
23476 | ||
23477 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23478 | ||
23479 | * config/mips/mips-protos.h: In comments, refer to loadgp_absolute | |
23480 | rather than loadgp_noshared. | |
23481 | * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute | |
23482 | instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of | |
23483 | gen_loadgp. | |
23484 | * config/mips/mips.md (loadgp): Rename to... | |
23485 | (loadgp_newabi): ...this. | |
23486 | (loadgp_noshared): Rename to... | |
23487 | (loadgp_absolute): ...this. | |
23488 | ||
23489 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23490 | ||
23491 | * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return | |
23492 | false for locally-binding symbols. | |
23493 | (mips_dangerous_for_la25_p): Check mips_global_symbol_p. | |
23494 | ||
23495 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23496 | ||
23497 | * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to... | |
23498 | (SYMBOL_GOT_PAGE_OFST): ...this. | |
23499 | (SYMBOL_GOT_GLOBAL): Rename to... | |
23500 | (SYMBOL_GOT_DISP): ...this. | |
23501 | (SYMBOL_GOTOFF_GLOBAL): Rename to... | |
23502 | (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly. | |
23503 | * config/mips/mips.c (mips_global_symbol_p): New function. | |
23504 | (mips_symbol_binds_local_p): Likewise. | |
23505 | (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP | |
23506 | and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use | |
23507 | mips_global_symbol_p and mips_symbol_binds_local_p. | |
23508 | (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) | |
23509 | (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP, | |
23510 | SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to | |
23511 | SYMBOL_GOTOFF_DISP. | |
23512 | (mips_ok_for_lazy_binding_p): New function. | |
23513 | (mips_load_call_address, mips_expand_call): Use it. | |
23514 | (mips_dangerous_for_la25_p): Likewise. | |
23515 | * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>) | |
23516 | (*got_disp<mode>): Use got_disp_operand instead of | |
23517 | global_got_operand. Use SYMBOL_GOTOFF_DISP instead of | |
23518 | SYMBOL_GOTOFF_GLOBAL. | |
23519 | (*got_page<mode>): Use got_page_ofst_operand instead of | |
23520 | local_got_operand. | |
23521 | * config/mips/predicates.md (const_call_insn_operand): Use | |
23522 | SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL. | |
23523 | (global_got_operand): Rename to... | |
23524 | (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of | |
23525 | SYMBOL_GOT_GLOBAL. | |
23526 | (local_got_operand): Rename to... | |
23527 | (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead | |
23528 | of SYMBOL_GOT_LOCAL. | |
23529 | ||
23530 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23531 | ||
23532 | * config/mips/mips.h (TARGET_SPLIT_CALLS): Check | |
23533 | TARGET_CALL_CLOBBERED_GP. | |
23534 | (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS. | |
23535 | (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros. | |
23536 | (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise. | |
23537 | (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead | |
23538 | of TARGET_ABICALLS && !TARGET_NEWABI. | |
23539 | (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS. | |
23540 | * config/mips/mips.c (mips_load_call_address): Check | |
23541 | TARGET_CALL_SAVED_GP instead of TARGET_NEWABI. | |
23542 | (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS. | |
23543 | Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI. | |
23544 | (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of | |
23545 | TARGET_ABICALLS && TARGET_NEWABI. | |
23546 | (mips_current_loadgp_style): Check TARGET_USE_GOT instead of | |
23547 | TARGET_ABICALLS. | |
23548 | (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI. | |
23549 | (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of | |
23550 | TARGET_ABICALLS && TARGET_NEWABI. | |
23551 | (mips_output_mi_thunk): Check TARGET_USE_GOT instead of | |
23552 | TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of | |
23553 | TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide | |
23554 | whether indirect calls must use $25. | |
23555 | (mips_extra_live_on_entry): Check TARGET_GOT instead of | |
23556 | TARGET_ABICALLS. | |
23557 | * config/mips/mips.md (jal_macro): Check flag_pic and | |
23558 | TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI. | |
23559 | (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT | |
23560 | instead of TARGET_ABICALLS. | |
23561 | (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of | |
23562 | TARGET_ABICALLS && TARGET_OLDABI. | |
23563 | (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS. | |
23564 | (sibcall): In the comment above the define_insn, mention | |
23565 | TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS. | |
23566 | * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG | |
23567 | instead of TARGET_ABICALLS. | |
23568 | ||
23569 | 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com> | |
23570 | ||
23571 | * doc/md.texi (Blackfin family constraints): Document PA and PB. | |
23572 | * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB. | |
23573 | (MACFLAGS_MATCH_P): New macro. | |
23574 | * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M. | |
23575 | (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS. | |
23576 | * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of | |
23577 | the other MACFLAG constants. | |
23578 | (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns. | |
23579 | (flag_machi): Tighten constraints. Renumber some of the operands. | |
23580 | (flag_machi_acconly): Tighten constraints. Correct operand numbers in | |
23581 | output template. | |
23582 | (flag_machi_parts_acconly): New pattern. | |
23583 | (flag_macinithi): Tighten constraints. Allow any accumulator to be | |
23584 | used. | |
23585 | (flag_macinit1hi): Tighten constraints. | |
23586 | (flag_mul_macv2hi_parts_acconly): New pattern. | |
23587 | ||
23588 | * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart): | |
23589 | Use a more efficient implementation. | |
23590 | * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit | |
23591 | inline sequences when not optimizing for size. | |
23592 | ||
23593 | * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low, | |
23594 | movhi_high2low): Delete, merge functionality into... | |
23595 | (packv2hi): ... this pattern. | |
23596 | ||
23597 | 2007-02-11 Jie Zhang <jie.zhang@analog.com> | |
23598 | * config/bfin/bfin.opt (msim): New option. | |
23599 | (mcpu=): New option. | |
23600 | * config/bfin/bfin-protos.h (enum bfin_cpu): New. | |
23601 | (bfin_cpu_t): Typedef of enum bfin_cpu. | |
23602 | (bfin_cpu_type): New declaration. | |
23603 | * config/bfin/elf.h (STARTFILE_SPEC): Add support for | |
23604 | -msim and -mcpu= options. | |
23605 | (LIB_SPEC): Likewise. | |
23606 | * config/bfin/bfin.c (bfin_cpu_type): Define. | |
23607 | (bfin_handle_option): Handle -mcpu= option. | |
23608 | * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532. | |
23609 | (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__, | |
23610 | __ADSPBF533__ or __ADSPBF537__ according to the cpu type. | |
23611 | ||
23612 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23613 | ||
23614 | * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza. | |
23615 | (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks) | |
23616 | (powerpc-wrs-vxworksae): Use ${tm_file}. | |
23617 | (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h | |
23618 | after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h. | |
23619 | * config/i386/vx-common.h: New file. | |
23620 | ||
23621 | 2007-04-12 Richard Sandiford <richard@codesourcery.com> | |
23622 | ||
23623 | * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead | |
23624 | of crt0.o%s. | |
23625 | ||
23626 | 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com> | |
23627 | ||
23628 | * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of | |
23629 | ldxtr. | |
23630 | ||
23631 | 2007-04-12 Douglas Gregor <doug.gregor@gmail.com> | |
23632 | ||
23633 | PR c++/31078 | |
23634 | PR c++/31103 | |
23635 | * c-common.c (c_build_qualified_type): Set canonical type | |
23636 | appropriately. | |
23637 | ||
23638 | 2007-04-12 Richard Guenther <rguenther@suse.de> | |
23639 | ||
23640 | * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF | |
23641 | lower bound and element size if lower bound is not zero | |
23642 | or either of the ARRAY_REF operands is set. | |
23643 | ||
23644 | 2007-04-12 Richard Guenther <rguenther@suse.de> | |
23645 | ||
23646 | PR tree-optimization/24689 | |
23647 | PR tree-optimization/31307 | |
23648 | * fold-const.c (operand_equal_p): Compare INTEGER_CST array | |
23649 | indices by value. | |
23650 | * gimplify.c (canonicalize_addr_expr): To be consistent with | |
23651 | gimplify_compound_lval only set operands two and three of | |
23652 | ARRAY_REFs if they are not gimple_min_invariant. This makes | |
23653 | it never at this place. | |
23654 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. | |
23655 | ||
23656 | 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
23657 | ||
23658 | * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not | |
23659 | null before emitting a .nsubspa directive. | |
23660 | ||
23661 | 2007-04-11 Diego Novillo <dnovillo@redhat.com> | |
23662 | ||
23663 | * tree-ssa-alias.c (dump_mem_ref_stats): Do not call | |
23664 | need_to_partition_p if there are no memory statements in the | |
23665 | function. | |
23666 | ||
23667 | 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz> | |
23668 | ||
23669 | * tree-data-ref.c (chrec_steps_divide_constant_p): Removed. | |
23670 | (gcd_of_steps_may_divide_p): New function. | |
23671 | (analyze_miv_subscript): Use gcd_of_steps_may_divide_p. | |
23672 | ||
23673 | 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com> | |
23674 | ||
23675 | * reload.c (find_reloads_toplev, find_reloads_address, | |
23676 | find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p, | |
23677 | not a pointer equality test, to decide if we need to call | |
23678 | push_reg_equiv_alt_mem. | |
23679 | ||
23680 | 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr> | |
23681 | ||
23682 | * tree-data-ref.c (affine_function_zero_p, constant_access_functions, | |
23683 | insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): | |
23684 | New. | |
23685 | (build_classic_dist_vector): Call add_distance_for_zero_overlaps. | |
23686 | ||
23687 | 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz> | |
23688 | ||
23689 | * tree-data-ref.c (add_multivariate_self_dist): Force the distance | |
23690 | vector to be positive. | |
23691 | ||
23692 | 2007-04-11 Diego Novillo <dnovillo@redhat.com> | |
23693 | ||
23694 | PR 30735 | |
23695 | PR 31090 | |
23696 | * doc/invoke.texi: Document --params max-aliased-vops and | |
23697 | avg-aliased-vops. | |
23698 | * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions, | |
23699 | debug_memory_partitions): Move to tree-flow.h | |
23700 | * params.h (AVG_ALIASED_VOPS): Define. | |
23701 | * tree-ssa-alias.c (struct mp_info_def): Remove. Update all | |
23702 | users. | |
23703 | (mp_info_t): Likewise. | |
23704 | (get_mem_sym_stats_for): New. | |
23705 | (set_memory_partition): Move from tree-flow-inline.h. | |
23706 | (mark_non_addressable): Only clear the set of symbols for the | |
23707 | partition if it exists. | |
23708 | (dump_memory_partitions): Move from tree-ssa-operands.c | |
23709 | (debug_memory_partitions): Likewise. | |
23710 | (need_to_partition_p): New. | |
23711 | (dump_mem_ref_stats): New. | |
23712 | (debug_mem_ref_stats): New. | |
23713 | (dump_mem_sym_stats): New. | |
23714 | (debug_mem_sym_stats): New. | |
23715 | (update_mem_sym_stats_from_stmt): New. | |
23716 | (compare_mp_info_entries): New. | |
23717 | (mp_info_cmp): Call it. | |
23718 | (sort_mp_info): Change argument to a list of mem_sym_stats_t | |
23719 | objects. | |
23720 | (get_mpt_for): Move from tree-ssa-operands.c. | |
23721 | (find_partition_for): New. | |
23722 | (create_partition_for): Remove. | |
23723 | (estimate_vop_reduction): New. | |
23724 | (update_reference_counts): New. | |
23725 | (build_mp_info): New. | |
23726 | (compute_memory_partitions): Refactor. | |
23727 | Document new heuristic. | |
23728 | Call build_mp_info, update_reference_counts, | |
23729 | find_partition_for and estimate_vop_reduction. | |
23730 | (compute_may_aliases): Populate virtual operands before | |
23731 | calling debugging dumps. | |
23732 | (delete_mem_sym_stats): New. | |
23733 | (delete_mem_ref_stats): New. | |
23734 | (init_mem_ref_stats): New. | |
23735 | (init_alias_info): Call it. | |
23736 | (maybe_create_global_var): Remove alias_info argument. | |
23737 | Get number of call sites and number of pure/const call sites | |
23738 | from gimple_mem_ref_stats(). | |
23739 | (dump_alias_info): Call dump_memory_partitions first. | |
23740 | (dump_points_to_info_for): Show how many times a pointer has | |
23741 | been dereferenced. | |
23742 | * opts.c (decode_options): For -O2 set --param | |
23743 | max-aliased-vops to 500. | |
23744 | For -O3 set --param max-aliased-vops to 1000 and --param | |
23745 | avg-aliased-vops to 3. | |
23746 | * fortran/options.c (gfc_init_options): Remove assignment to | |
23747 | MAX_ALIASED_VOPS. | |
23748 | * tree-flow-inline.h (gimple_mem_ref_stats): New. | |
23749 | * tree-dfa.c (dump_variable): Dump memory reference | |
23750 | statistics. | |
23751 | Dump NO_ALIAS* settings. | |
23752 | (referenced_var_lookup): Tidy. | |
23753 | (mem_sym_stats): New. | |
23754 | * tree-ssa-copy.c (may_propagate_copy): Return true if DEST | |
23755 | and ORIG are different SSA names for a memory partition. | |
23756 | * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats. | |
23757 | * tree-flow.h (struct mem_sym_stats_d): Define. | |
23758 | (mem_sym_stats_t): Define. | |
23759 | (struct mem_ref_stats_d): Define. | |
23760 | (struct gimple_df): Add field mem_ref_stats. | |
23761 | (enum noalias_state): Define. | |
23762 | (struct var_ann_d): Add bitfield noalias_state. | |
23763 | (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats, | |
23764 | debug_mem_ref_stats, debug_memory_partitions, | |
23765 | debug_mem_sym_stats): Declare. | |
23766 | * tree-ssa-structalias.c (update_alias_info): Update call | |
23767 | sites, pure/const call sites and asm sites in structure | |
23768 | returned by gimple_mem_ref_stats. | |
23769 | Remove local variable IS_POTENTIAL_DEREF. | |
23770 | Increase NUM_DEREFS if the memory expression is a potential | |
23771 | dereference. | |
23772 | Call update_mem_sym_stats_from_stmt. | |
23773 | If the memory references memory, call | |
23774 | update_mem_sym_stats_from_stmt for all the direct memory | |
23775 | symbol references found. | |
23776 | (intra_create_variable_infos): Set noalias_state field for | |
23777 | pointer arguments according to the value of | |
23778 | flag_argument_noalias. | |
23779 | * tree-ssa-structalias.h (struct alias_info): Remove fields | |
23780 | num_calls_found and num_pure_const_calls_found. | |
23781 | (update_mem_sym_stats_from_stmt): Declare. | |
23782 | * params.def (PARAM_MAX_ALIASED_VOPS): Change description. | |
23783 | Set default value to 100. | |
23784 | (PARAM_AVG_ALIASED_VOPS): Define. | |
23785 | ||
23786 | 2007-04-11 Richard Guenther <rguenther@suse.de> | |
23787 | ||
23788 | PR middle-end/31530 | |
23789 | * simplify-rtx.c (simplify_binary_operation_1): Do not simplify | |
23790 | a * -b + c as c - a * b if we honor sign dependent rounding. | |
23791 | ||
23792 | 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com> | |
23793 | ||
23794 | * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from | |
23795 | bfin_expand_strmov. | |
23796 | * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address, | |
23797 | bfin_function_ok_for_sibcall, split_load_immediate): Remove unused | |
23798 | variables. | |
23799 | (initialize_trampoline): Don't use old-style function definition. | |
23800 | (bfin_secondary_reload): Mark IN_P argument as unused. | |
23801 | ||
23802 | 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr> | |
23803 | ||
23804 | PR tree-optimization/31343 | |
23805 | * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec. | |
23806 | (build_polynomial_chrec): Return a scalar when the evolution is zero. | |
23807 | * testsuite/gcc.dg/vect/pr31343.c: New. | |
23808 | ||
23809 | 2007-04-10 Eric Christopher <echristo@apple.com> | |
23810 | ||
23811 | * config/i386/i386.h (X87_FLOAT_MODE_P): New. | |
23812 | * config/i386/i386.md (*cmpfp0): Use. | |
23813 | (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto. | |
23814 | (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto. | |
23815 | (fix_trunc<mode>_i386_fisttp): Ditto. | |
23816 | (fix_trunc<mode>_i387_fisttp_with_temp): Ditto. | |
23817 | (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto. | |
23818 | (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto. | |
23819 | (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto. | |
23820 | (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto. | |
23821 | (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto. | |
23822 | (unnamed_splitters): Ditto. | |
23823 | * config/i386/i386.c (output_fix_trunc): Assert that | |
23824 | we're not being passed a TFmode operand. | |
23825 | ||
23826 | 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz> | |
23827 | ||
23828 | PR tree-optimization/31526 | |
23829 | * tree-inline.c (copy_cfg_body): Use last_basic_block instead of | |
23830 | n_basic_blocks to find newly added blocks. | |
23831 | ||
23832 | 2007-04-10 Uros Bizjak <ubizjak@gmail.com> | |
23833 | ||
23834 | * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm" | |
23835 | alternative. | |
23836 | (fix_trunc<mode>si_sse): Ditto. | |
23837 | (*floatsisf2_mixed, *floatsisf2_sse): Ditto. | |
23838 | (*floatsidf2_mixed, *floatsidf2_sse): Ditto. | |
23839 | (*floatdisf2_mixed, *floatdisf2_sse): Ditto. | |
23840 | (*floatdidf2_mixed, *floatdidf2_sse): Ditto. | |
23841 | (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize | |
23842 | expander using SSEMODEF mode macro. | |
23843 | (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize | |
23844 | expander using SSEMODEF mode macro. | |
23845 | (*floathi<mode>2_i387): Rename from *floathisf2_i387 and | |
23846 | *floathidf2_i387. Macroize insn using X87MODEF12 mode macro. | |
23847 | (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and | |
23848 | *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro. | |
23849 | (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and | |
23850 | *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro. | |
23851 | (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2. | |
23852 | Macroize insn using X87MODEF mode macro. | |
23853 | ||
23854 | 2007-04-09 H.J. Lu <hongjiu.lu@intel.com> | |
23855 | ||
23856 | * config/i386/sse.md (sse2_pinsrw): Removed. | |
23857 | (sse2_pextrw): Renamed to ... | |
23858 | (*sse2_pextrw): This. | |
23859 | ||
23860 | 2007-04-09 Jan Hubicka <jh@suse.cz> | |
23861 | ||
23862 | PR target/27869 | |
23863 | * config/i386/sse.md | |
23864 | (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier. | |
23865 | (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove. | |
23866 | (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier. | |
23867 | (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove. | |
23868 | ||
23869 | 2007-04-09 Jan Hubicka <jh@suse.cz> | |
23870 | ||
23871 | * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into | |
23872 | multiple fields of union. | |
23873 | ||
23874 | 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz> | |
23875 | ||
23876 | * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge. | |
23877 | (create_preheaders): Check that loops are available. | |
23878 | (fix_loop_structure): Clean up, improve comments. | |
23879 | * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): | |
23880 | Check that loops are available. Set LOOP_CLOSED_SSA to the loops | |
23881 | state flags. | |
23882 | * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info. | |
23883 | * predict.c (tree_estimate_probability): Do not call | |
23884 | calculate_dominance_info. Call create_preheaders. | |
23885 | * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call | |
23886 | rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state | |
23887 | flags. | |
23888 | * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders. | |
23889 | * cfgloop.h (LOOP_CLOSED_SSA): New constant. | |
23890 | * tree-cfg.c (tree_split_edge): Make an assert more precise. | |
23891 | * tree-ssa-threadedge.c (thread_across_edge): Comment the function | |
23892 | arguments. | |
23893 | ||
23894 | 2007-04-08 Jan Hubicka <jh@suse.cz> | |
23895 | ||
23896 | * tree.h (maybe_fold_offset_to_component_ref): Declare. | |
23897 | * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export. | |
23898 | * fold-const.c (fold_unary): Use it. | |
23899 | ||
23900 | 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
23901 | ||
23902 | * varasm.c (assemble_variable): Remove call to | |
23903 | lang_hooks.decls.prepare_assemble_variable. | |
23904 | * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill. | |
23905 | (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE. | |
23906 | * langhooks.h (lang_hooks_for_decls): Remove | |
23907 | prepare_assemble_variable. | |
23908 | ||
23909 | 2007-04-08 Mike Stump <mrs@apple.com> | |
23910 | ||
23911 | * config/i386/i386.c: Use inc/dec on Core2. | |
23912 | ||
23913 | 2007-04-08 Steven Bosscher <steven@gcc.gnu.org> | |
23914 | ||
23915 | * langhooks.c (lhd_tree_inlining_add_pending_fn_decls, | |
23916 | lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining, | |
23917 | lhd_tree_inlining_end_inlining): Remove. | |
23918 | * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then | |
23919 | add_pending_fn_decls, anon_aggr_type_p, start_inlining, and | |
23920 | end_inlining hooks. | |
23921 | * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls, | |
23922 | lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining, | |
23923 | lhd_tree_inlining_end_inlining): Remove prototypes. | |
23924 | (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS, | |
23925 | LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, | |
23926 | LANG_HOOKS_TREE_INLINING_START_INLINING, | |
23927 | LANG_HOOKS_TREE_INLINING_END_INLINING): Remove. | |
23928 | ||
23929 | * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do | |
23930 | not set it. | |
23931 | ||
23932 | 2007-04-08 Anatoly Sokolov <aesok@post.ru> | |
23933 | ||
23934 | PR target/29932 | |
23935 | * config/avr/predicates.md (io_address_operand): Delete predicate. | |
23936 | (low_io_address_operand): Don't use 'mode' argument. | |
23937 | (higth_io_address_operand): Rename ... | |
23938 | (high_io_address_operand): ... to this. Don't use 'mode' argument. | |
23939 | * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust | |
23940 | for above change. | |
23941 | ||
23942 | 2007-04-07 Daniel Berlin <dberlin@dberlin.org> | |
23943 | ||
23944 | Revert change removing staticp. | |
23945 | ||
23946 | 2007-04-07 Anatoly Sokolov <aesok@post.ru> | |
23947 | ||
23948 | PR target/30289 | |
23949 | * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as | |
23950 | earlyclobber. | |
23951 | ||
23952 | 2007-04-07 Bruce Korb <bkorb@gnu.org> | |
23953 | ||
23954 | * c.opt: Add -Wformat-contains-nul. | |
23955 | * c-format.c (set_Wformat): Set warn_format_contains_nul to the | |
23956 | -Wformat setting. | |
23957 | (check_format_info_main): Check OPT_Wformat_contains_nul before emitting | |
23958 | the NUL byte warning. | |
23959 | ||
23960 | 2007-04-07 H.J. Lu <hongjiu.lu@intel.com> | |
23961 | ||
23962 | * config/i386/i386.c (ix86_handle_option): Handle SSSE3. | |
23963 | ||
23964 | 2007-04-06 Daniel Berlin <dberlin@dberlin.org> | |
23965 | ||
23966 | * tree.c (staticp): No longer use staticp langhook. | |
23967 | * langhooks.c (lhd_staticp): Removed. | |
23968 | * langhooks.h (struct lang_hooks): Remove staticp. | |
23969 | * c-common.c (c_staticp): Remove. | |
23970 | * c-common.h (c_staticp): Ditto. | |
23971 | * langhooks-defs.h (lhd_staticp): Ditto. | |
23972 | (LHD_HOOKS_STATICP): Ditto | |
23973 | * tree.h (gcc_assert_lowered): New macro. | |
23974 | ||
23975 | 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz> | |
23976 | ||
23977 | * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use | |
23978 | argument "reliable". | |
23979 | (infer_loop_bounds_from_ref, infer_loop_bounds_from_array): | |
23980 | Add argument "reliable". Propagate it through calls. | |
23981 | (infer_loop_bounds_from_undefined): Derive number of iterations | |
23982 | estimates from references in blocks that do not dominate loop latch. | |
23983 | (gcov_type_to_double_int): New function. | |
23984 | (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int | |
23985 | and expected_loop_iterations_unbounded. | |
23986 | * cfgloopanal.c (expected_loop_iterations_unbounded): New function. | |
23987 | (expected_loop_iterations): Use expected_loop_iterations_unbounded. | |
23988 | * tree-data-ref.c (estimated_loop_iterations): Export. | |
23989 | (get_references_in_stmt): Fix -- do not return addresses of local | |
23990 | objects. | |
23991 | * cfgloop.h (expected_loop_iterations_unbounded, | |
23992 | estimated_loop_iterations): Declare. | |
23993 | ||
23994 | 2007-04-06 Andreas Tobler <a.tobler@schweiz.org> | |
23995 | ||
23996 | * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. | |
23997 | ||
23998 | 2007-04-06 Uros Bizjak <ubizjak@gmail.com> | |
23999 | ||
24000 | * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2 | |
24001 | and extenddfxf2. Macroize expander using X87MODEF12 mode macro. | |
24002 | (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1): | |
24003 | Use output_387_reg_move(). | |
24004 | (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize | |
24005 | expander using X87MODEF12 mode macro. | |
24006 | (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when | |
24007 | choosing register preferences. Use output_387_reg_move(). | |
24008 | (*truncxfdf2_mixed): Combine alternatives, use "r" alternative | |
24009 | instead of "x". Use output_387_reg_move(). | |
24010 | (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and | |
24011 | *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro. | |
24012 | (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and | |
24013 | *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro. | |
24014 | Use output_387_reg_move(). | |
24015 | (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12 | |
24016 | mode macro. | |
24017 | (*truncxf?f_i387 splitter): Ditto. | |
24018 | ||
24019 | 2007-04-06 Daniel Berlin <dberlin@dberlin.org> | |
24020 | ||
24021 | * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove | |
24022 | LANG_HOOKS_SAFE_FROM_P. | |
24023 | * expr.c (safe_from_p): Remove langhook call. | |
24024 | * langhooks.h (lang_hooks): Remove safe_from_p. | |
24025 | (lhd_safe_from_p): Remove prototype. | |
24026 | * langhooks.c (lhd_safe_from_p): Remove. | |
24027 | ||
24028 | 2007-04-06 Jan Hubicka <jh@suse.cz> | |
24029 | ||
24030 | * cgraphunit.c (decide_is_function_needed): Do not keep always_inline | |
24031 | functions. | |
24032 | ||
24033 | 2007-04-06 Uros Bizjak <ubizjak@gmail.com> | |
24034 | ||
24035 | * config/i386/i386.c (output_387_reg_move): Handle memory operand[0]. | |
24036 | * config/i386/i386.md (*movsf_1, *movdf_nointeger, | |
24037 | *movdf_integer_rex64, *movdf_integer, *movxf_nointeger, | |
24038 | *movxf_integer): Use output_387_reg_move() for x87 reg->mem | |
24039 | alternative. | |
24040 | (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387, | |
24041 | *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto. | |
24042 | ||
24043 | 2007-04-05 Richard Henderson <rth@redhat.com> | |
24044 | ||
24045 | * config/alpha/alpha.c (print_operand) [+]: Remove. | |
24046 | (alpha_end_function): Print nop if call at end of function. | |
24047 | * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +. | |
24048 | * config/alpha/alpha.md (UNSPEC_LDGP1): New. | |
24049 | (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New. | |
24050 | (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New. | |
24051 | (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into | |
24052 | the call pattern. Update peepholes to match. | |
24053 | ||
24054 | 2007-04-05 Janis Johnson <janis187@us.ibm.com> | |
24055 | ||
24056 | * doc/extend.texi (Other Builtins): Add decimal float variants | |
24057 | of signbit. | |
24058 | * builtins.def: Ditto. | |
24059 | * builtins.c (expand_builtin): Ditto. | |
24060 | ||
24061 | 2007-04-05 Uros Bizjak <ubizjak@gmail.com> | |
24062 | H.J. Lu <hongjiu.lu@intel.com> | |
24063 | ||
24064 | PR target/31478 | |
24065 | * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead | |
24066 | of V8HImode when calling ix86_binary_operator_ok. | |
24067 | (sse2_pmaddwd): Call ix86_binary_operator_ok. | |
24068 | (sdot_prodv8hi): Operands 1 and 2 must be register. | |
24069 | ||
24070 | 2007-04-05 Alexandre Oliva <aoliva@redhat.com> | |
24071 | ||
24072 | * tree-sra.c (try_instantiate_multiple_fields): Needlessly | |
24073 | initialize align to silence bogus warning. | |
24074 | ||
24075 | 2007-04-05 Alexandre Oliva <aoliva@redhat.com> | |
24076 | ||
24077 | PR middle-end/22156 | |
24078 | * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove | |
24079 | all_no_warning. | |
24080 | (struct sra_walk_fns): Remove use_all parameter from use. | |
24081 | (sra_hash_tree): Handle BIT_FIELD_REFs. | |
24082 | (sra_elt_hash): Don't hash bitfld blocks. | |
24083 | (sra_elt_eq): Skip them in parent compares as well. Handle | |
24084 | BIT_FIELD_REFs. | |
24085 | (sra_walk_expr): Don't maintain or pass down use_all_p. | |
24086 | (scan_use): Remove use_all parameter. | |
24087 | (scalarize_use): Likewise. Re-expand assignment to | |
24088 | BIT_FIELD_REF of gimple_reg. De-scalarize before input or | |
24089 | output, and re-scalarize after output. Don't mark anything | |
24090 | for no warning. | |
24091 | (scalarize_ldst): Adjust. | |
24092 | (scalarize_walk_gimple_modify_statement): Likewise. | |
24093 | (build_element_name_1): Handle BIT_FIELD_REFs. | |
24094 | (instantiate_element): Don't warn for any element whose parent | |
24095 | is used as a whole. | |
24096 | (instantiate_missing_elements_1): Return the sra_elt. | |
24097 | (canon_type_for_field): New. | |
24098 | (try_instantiate_multiple_fields): New. | |
24099 | (instantiate_missing_elemnts): Use them. | |
24100 | (mark_no_warning): Removed. | |
24101 | (generate_one_element_ref): Handle BIT_FIELD_REFs. | |
24102 | (REPLDUP, sra_build_elt_assignment): New. | |
24103 | (generate_copy_inout): Use them. | |
24104 | (generate_element_copy): Likewise. Handle bitfld differences. | |
24105 | (generate_element_zero): Don't recurse for blocks. Use | |
24106 | sra_build_elt_assignment. | |
24107 | (generate_one_element_int): Take elt instead of var. Use | |
24108 | sra_build_elt_assignment. | |
24109 | (generate_element_init_1): Adjust. | |
24110 | (scalarize_use, scalarize_copy): Use REPLDUP. | |
24111 | (scalarize_ldst): Move assert before dereference. | |
24112 | (dump_sra_elt_name): Handle BIT_FIELD_REFs. | |
24113 | ||
24114 | 2007-04-05 Steven Bosscher <steven@gcc.gnu.org> | |
24115 | ||
24116 | * regmove.c: Fix unused variable warnings due to previous commit. | |
24117 | ||
24118 | 2007-04-05 Steven Bosscher <steven@gcc.gnu.org> | |
24119 | ||
24120 | * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize. | |
24121 | (regmove_bb_head): Remove. | |
24122 | (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD. | |
24123 | (regmove_optimize): Don't do unnecessary CFG fixes for non-existing | |
24124 | problems with fixup_match_1. | |
24125 | Don't initialize/free regmove_bb_head. | |
24126 | ||
24127 | (reg_is_remote_constant_p): If an insn is in the same basic block | |
24128 | but not before INSN, consider it remote, too. | |
24129 | ||
24130 | 2007-04-05 Anatoly Sokolov <aesok@post.ru> | |
24131 | ||
24132 | PR target/25448 | |
24133 | * config/avr/avr.c (avr_handle_fndecl_attribute): Use the | |
24134 | DECL_ASSEMBLER_NAME, not the DECL_NAME. | |
24135 | ||
24136 | 2007-04-05 H.J. Lu <hongjiu.lu@intel.com> | |
24137 | ||
24138 | * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat. | |
24139 | (CONDITIONAL_REGISTER_USAGE): Likewise. | |
24140 | ||
24141 | 2007-04-04 Richard Henderson <rth@redhat.com> | |
24142 | ||
24143 | * config/alpha/lib1funcs.asm: Remove unused file. | |
24144 | ||
24145 | 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com> | |
24146 | ||
24147 | PR other/31356 | |
24148 | * opts.c (print_specific_help): Fix --help=<language> | |
24149 | header line. | |
24150 | (common_handle_option): Support --help=common. | |
24151 | ||
24152 | 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com> | |
24153 | ||
24154 | PR other/31353 | |
24155 | * gcc.c (main): Do not run the linker if | |
24156 | print_subprocess_help indicates that it shouldn't be | |
24157 | run. | |
24158 | ||
24159 | 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com> | |
24160 | ||
24161 | PR doc/31355 | |
24162 | * doc/invoke.texi (--help=): Document <languages> value, fix | |
24163 | formatting in tables of values. | |
24164 | ||
24165 | 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net> | |
24166 | ||
24167 | * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore | |
24168 | dllimport attribute of virtual methods. | |
24169 | ||
24170 | 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn> | |
24171 | ||
24172 | * config/score/crti.asm: Change _bss_start to __bss_start. | |
24173 | * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added. | |
24174 | (OUTGOING_REG_PARM_STACK_SPACE) update. | |
24175 | * config/score/score.opt: add options to make backend support | |
24176 | score5, score5u, score7 and score7d. | |
24177 | * config/score/score.md: Likewise. | |
24178 | * config/score/misc.md: Likewise. | |
24179 | * config/score/mac.md: Likewise. | |
24180 | * doc/invoke.texi: Likewise. | |
24181 | * doc/md.texi: update constraints define. | |
24182 | ||
24183 | 2007-04-03 Richard Henderson <rth@redhat.com> | |
24184 | ||
24185 | * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield | |
24186 | an appropriate type, use the mode instead. | |
24187 | ||
24188 | 2007-04-03 Richard Sandiford <richard@codesourcery.com> | |
24189 | ||
24190 | * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file. | |
24191 | Set the default --with-arch setting to mips2. | |
24192 | * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES) | |
24193 | (MULTILIB_EXCEPTIONS): Redefine with new multilibs. | |
24194 | (MULTILIB_OSDIRNAMES): Delete. | |
24195 | (MULTILIB_DIRNAMES): Define. | |
24196 | * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC. | |
24197 | (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define. | |
24198 | (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC | |
24199 | definitions, except for _WRS_R3K_EXC_SUPPORT. Call | |
24200 | VXWORKS_OS_CPP_BUILTINS. | |
24201 | (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC. | |
24202 | (MIPS_DEBUGGING_INFO): Undefine. | |
24203 | (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER. | |
24204 | ||
24205 | 2007-04-03 Jakub Jelinek <jakub@redhat.com> | |
24206 | ||
24207 | PR middle-end/30704 | |
24208 | * fold-const.c (native_encode_real): Encode real.c provided longs | |
24209 | as a series of 32-bit native integers. | |
24210 | (native_interpret_real): Interpret buffer as a series of 32-bit | |
24211 | native integers. | |
24212 | ||
24213 | 2007-04-03 Richard Guenther <rguenther@suse.de> | |
24214 | ||
24215 | * genpreds.c (write_insn_constraint_len): Write function | |
24216 | optimized for CONSTRAINT_LEN implementation. | |
24217 | (write_tm_preds_h): Output insn_constraint_len inline and | |
24218 | use it for CONSTRAINT_LEN. | |
24219 | (write_insn_preds_c): Don't output insn_constraint_len. | |
24220 | * doc/md.texi (define_register_constraint): Document multi-letter | |
24221 | constraints shall have the same length if they start with the same | |
24222 | letter. | |
24223 | ||
24224 | 2007-04-03 Uros Bizjak <ubizjak@gmail.com> | |
24225 | ||
24226 | PR target/31175 | |
24227 | * config/i386/i386.md (isinf<mode>2): Expand only when | |
24228 | TARGET_C99_FUNCTIONS is set. | |
24229 | ||
24230 | 2007-04-03 Uros Bizjak <ubizjak@gmail.com> | |
24231 | ||
24232 | * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file. | |
24233 | (x86_64-*-linux*): Ditto. | |
24234 | * config/i386/i386.opt (mpc): New option. | |
24235 | * config/i386/i386.c (overrride_options): Handle | |
24236 | ix87_precision_string. | |
24237 | * config/i386/crtprec.c: New file. | |
24238 | * config/i386/t-crtpc: Ditto. | |
24239 | * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64 | |
24240 | and -mpc80 options. | |
24241 | * config/i386/linux64.h (ENDFILE_SPEC): Ditto. | |
24242 | * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add | |
24243 | crtprec32.o, crtprec64.o and crtprec80.o. | |
24244 | ||
24245 | * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64 | |
24246 | and -mpc80 options. | |
24247 | (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options. | |
24248 | ||
24249 | 2007-04-02 Eric Christopher <echristo@apple.com> | |
24250 | ||
24251 | * doc/invoke.texi (i386 and x86-64 Options): Document -m64 | |
24252 | limitations on darwin. | |
24253 | ||
24254 | 2007-04-02 Anatoly Sokolov <aesok@post.ru> | |
24255 | ||
24256 | PR target/31137 | |
24257 | * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements. | |
24258 | ||
24259 | 2007-04-02 Dave Korn <dave.korn@artimi.com> | |
24260 | ||
24261 | * doc/tm.texi (FUNCTION_MODE): Update and extend documentation. | |
24262 | ||
24263 | 2007-04-02 Dave Korn <dave.korn@artimi.com> | |
24264 | ||
24265 | * libgcc2.h (exception_descriptor): Don't forward-declare. | |
24266 | (__get_eh_table_language, __get_eh_table_version): Delete | |
24267 | prototypes of long-dead functions. | |
24268 | ||
24269 | 2007-04-01 Daniel Berlin <dberlin@dberlin.org> | |
24270 | ||
24271 | * ebitmap.h: New file | |
24272 | * ebitmap.c: New file | |
24273 | * Makefile.in (ebitmap.o): New target. | |
24274 | ||
24275 | 2007-04-01 Jan Hubicka <jh@suse.cz> | |
24276 | ||
24277 | * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit | |
24278 | before very first instruction. | |
24279 | ||
24280 | 2007-04-01 Jan Hubicka <jh@suse.cz> | |
24281 | ||
24282 | * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid | |
24283 | waring on 64bit hosts. | |
24284 | * bitmap.h: Fix typo in bitmap_head_def. | |
24285 | ||
24286 | 2007-04-01 Steven Bosscher <steven@gcc.gnu.org> | |
24287 | ||
24288 | PR rtl-optimization/31391 | |
24289 | * cfgcleanup.c (try_optimize_cfg): If a removed label is turned | |
24290 | into a DELETED_LABEL note, and the label is in an empty basic | |
24291 | block, update BB_END as well as BB_HEAD. | |
24292 | ||
24293 | 2007-04-01 Richard Henderson <rth@redhat.com> | |
24294 | ||
24295 | PR tree-optimization/31169 | |
24296 | * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop | |
24297 | to varying if the range is outside [0, prec-1]. | |
24298 | ||
24299 | 2007-04-01 Richard Sandiford <richard@codesourcery.com> | |
24300 | ||
24301 | PR target/31388 | |
24302 | * config/mips/mips.md (load_const_gp): New insn. | |
24303 | * config/mips/mips.c (mips_split_symbol): Avoid using or creating | |
24304 | the MIPS16 GP pseudo register if no_new_pseudos. | |
24305 | (mips16_gp_pseudo_reg): Use gen_load_const_gp. | |
24306 | ||
24307 | 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
24308 | ||
24309 | PR target/31364 | |
24310 | * config/rs6000/rs6000.md (call): Convert to LR hard reg for | |
24311 | secureplt. | |
24312 | (call_value): Likewise. | |
24313 | ||
24314 | 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org> | |
24315 | Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
24316 | ||
24317 | PR 14737 | |
24318 | * doc/invoke.texi: (optimization options): Reword description | |
24319 | of -ffast-math. Document its primary purpose. | |
24320 | ||
24321 | 2007-03-31 Richard Guenther <rguenther@suse.de> | |
24322 | ||
24323 | * omp-low.c (splay-tree.h): Include. | |
24324 | (lookup_decl): Replace splay-tree usage by pointer-map. | |
24325 | (maybe_lookup_decl): Likewise. | |
24326 | (new_omp_context): Likewise. | |
24327 | (delete_omp_context): Likewise. | |
24328 | * gimplify.c (splay-tree.h): Include. | |
24329 | * tree-inline.c (insert_decl_map): Replace splay-tree usage by | |
24330 | pointer-map. | |
24331 | (remap_ssa_name): Likewise. | |
24332 | (remap_decl): Likewise. | |
24333 | (remap_type_1): Likewise. | |
24334 | (remap_type): Likewise. | |
24335 | (copy_body_r): Likewise. | |
24336 | (expand_call_inline): Likewise. | |
24337 | (clone_body): Likewise. | |
24338 | (copy_tree_r): Likewise. | |
24339 | (remap_save_expr): Likewise. | |
24340 | (unsave_r): Likewise. | |
24341 | (unsave_expr_now): Likewise. | |
24342 | (tree_function_versioning): Likewise. | |
24343 | (build_duplicate_type): Likewise. | |
24344 | * tree-inline.h (pointer-set.h): Include instead of splay-tree.h. | |
24345 | (struct copy_body_data): Replace splay-tree by pointer-map. | |
24346 | * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h, | |
24347 | not $(SPLAY_TREE_H). | |
24348 | (gimplify.o): Depend on $(SPLAY_TREE_H). | |
24349 | (omp-low.p): Likewise. | |
24350 | ||
24351 | 2007-03-31 Anatoly Sokolov <aesok@post.ru> | |
24352 | ||
24353 | * config/avr/predicates.md (even_register_operand, | |
24354 | odd_register_operand): New predicates. | |
24355 | * config/avr/avr.md (movw peephole2): New. | |
24356 | (movw_r peephole2): New. | |
24357 | ||
719bb4e3 | 24358 | 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com> |
f13d199c RB |
24359 | |
24360 | * tree.h (get_signed_or_unsigned_type): New. | |
24361 | * fold-const.c (operand_equal_for_comparison_p): Use | |
24362 | get_signed_or_unsigned_type instead of | |
24363 | lang_hooks.types.signed_or_unsigned_type. | |
24364 | * expr.c (store_expr): Ditto. | |
24365 | * langhooks.c (get_signed_or_unsigned_type): New. | |
24366 | (lhd_signed_or_unsigned_type): New. | |
24367 | * langhooks.h (lhd_signed_or_unsigned_type): New. | |
24368 | * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define. | |
24369 | ||
24370 | 2007-03-30 Richard Henderson <rth@redhat.com> | |
24371 | ||
24372 | * tree-ssa-loop-ivopts.c: Include target.h. | |
24373 | (produce_memory_decl_rtl): Pass the rtx through encode_section_info. | |
24374 | (get_address_cost): Force SYMBOL_FLAG_LOCAL set. | |
24375 | (force_expr_to_var_cost): Use produce_memory_decl_rtl. | |
24376 | * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H. | |
24377 | ||
24378 | 2007-03-30 Richard Henderson <rth@redhat.com> | |
24379 | Kai Tietz <kai.tietz@onevision.com> | |
24380 | ||
24381 | * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by | |
24382 | default for 64-bit. | |
24383 | (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit. | |
24384 | (TARGET_64BIT_MS_ABI): New. | |
24385 | (DBX_REGISTER_NUMBER): Handle 64-bit. | |
24386 | (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit. | |
24387 | (LONG_TYPE_SIZE): Force to 32. | |
24388 | (REG_PARM_STACK_SPACE): New. | |
24389 | (OUTGOING_REG_PARM_STACK_SPACE): New. | |
24390 | (REGPARM_MAX, SSE_REGPARM_MAX): New. | |
24391 | (HANDLE_PRAGMA_PUSH_POP_MACRO): New. | |
24392 | (STACK_BOUNDARY): Use 128 for 64-bit. | |
24393 | * config/i386/cygwin.asm: Use push/ret to preserve call stack. | |
24394 | Add 64-bit implementation. | |
24395 | * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor | |
24396 | argument unused. | |
24397 | * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New. | |
24398 | (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI. | |
24399 | Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm | |
24400 | for 64-bit; use TARGET_SUBTARGET64_DEFAULT. | |
24401 | (ix86_handle_cconv_attribute): Don't warn when ignoring if | |
24402 | TARGET_64BIT_MS_ABI. | |
24403 | (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI. | |
24404 | (ix86_pass_by_reference): Likewise. | |
24405 | (ix86_function_value_regno_p): Likewise. | |
24406 | (ix86_build_builtin_va_list): Likewise. | |
24407 | (ix86_va_start, ix86_gimplify_va_arg): Likewise. | |
24408 | (function_arg_advance_ms_64): New. | |
24409 | (function_arg_advance): Call it. | |
24410 | (function_arg_ms_64): New. | |
24411 | (function_arg): Call it. | |
24412 | (function_value_ms_64): New. | |
24413 | (ix86_function_value_1): Call it. | |
24414 | (return_in_memory_ms_64): New. | |
24415 | (ix86_return_in_memory): Call it. | |
24416 | (setup_incoming_varargs_ms_64): New. | |
24417 | (ix86_setup_incoming_varargs): Call it. | |
24418 | (ix86_expand_prologue): Handle 64-bit stack probing. | |
24419 | (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI. | |
24420 | (output_pic_addr_const): Likewise. | |
24421 | (x86_this_parameter): Likewise. | |
24422 | (x86_output_mi_thunk): Likewise. | |
24423 | (x86_function_profiler): Likewise. | |
24424 | (TARGET_STRICT_ARGUMENT_NAMING): New. | |
24425 | * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New. | |
24426 | (TARGET_64BIT_MS_ABI): New. | |
24427 | (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI. | |
24428 | * config/i386/i386.md (allocate_stack_worker): Remove. | |
24429 | (allocate_stack_worker_32): Rename from allocate_stack_worker_1; | |
24430 | describe the clobber of eax without a match_scratch. | |
24431 | (allocate_stack_worker_postreload): Remove. | |
24432 | (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64; | |
24433 | describe the clobbers of rax, r10, r11 properly; use __chkstk symbol. | |
24434 | (allocate_stack_worker_rex64_postreload): Remove. | |
24435 | (allocate_stack): Handle 64-bit. | |
24436 | * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove. | |
24437 | * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit. | |
24438 | (EXTRA_OS_CPP_BUILTINS): Handle 64-bit. | |
24439 | (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT. | |
24440 | (STANDARD_STARTFILE_PREFIX_1): Likewise. | |
24441 | * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New. | |
24442 | * config.build (x86_64-*-mingw*): New host. | |
24443 | * config.host (x86_64-*-mingw*): New host. | |
24444 | * config.gcc (x86_64-*-mingw*): New target. | |
24445 | * gthr-win32.h (__gthread_key_create): Mark dtor unused. | |
24446 | ||
24447 | 2007-03-30 Richard Henderson <rth@redhat.com> | |
24448 | Kai Tietz <kai.tietz@onevision.com> | |
24449 | ||
24450 | * c-pragma.c (struct def_pragma_macro_value): New. | |
24451 | (struct def_pragma_macro): New. | |
24452 | (pushed_macro_table): New. | |
24453 | (dpm_hash, dpm_eq): New. | |
24454 | (handle_pragma_push_macro, handle_pragma_pop_macro): New. | |
24455 | (init_pragma): Install them. | |
24456 | * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New. | |
24457 | ||
24458 | 2007-03-30 Anatoly Sokolov <aesok@post.ru> | |
24459 | ||
24460 | * config/avr/avr.c (avr_override_options): Clear | |
24461 | 'flag_delete_null_pointer_checks'. | |
24462 | ||
24463 | 2007-03-30 Paolo Carlini <pcarlini@suse.de> | |
24464 | ||
24465 | PR c++/26099 | |
24466 | * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN, | |
24467 | RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY, | |
24468 | RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR, | |
24469 | RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR, | |
24470 | RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF, | |
24471 | RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM, | |
24472 | RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as | |
24473 | C++ extensions. | |
24474 | * doc/extend.texi (Extensions to the C++ Language): Add Type Traits. | |
24475 | ||
24476 | 2007-03-30 Steven Bosscher <steven@gcc.gnu.org> | |
24477 | ||
24478 | * regmove.c: Move all of pass_stack_adjustments from here... | |
24479 | * combine-stack-adj.c: ...to this new file. | |
24480 | * Makefile.in: Add rules for combine-stack-adj.o. | |
24481 | ||
24482 | 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz> | |
24483 | ||
24484 | PR tree-optimization/31383 | |
24485 | * tree-data-ref.c (affine_function_equal_p): Do not require the | |
24486 | vectors to have the same length. | |
24487 | ||
24488 | 2007-03-30 Jan Hubicka <jh@suse.cz> | |
24489 | ||
24490 | PR middle-end/30700 | |
24491 | * dwarf2out.c (reference_to_unused): Ask cgraph for functions | |
24492 | availablility; add more sanity checking; ask varpool only about | |
24493 | VAR_DECL. | |
24494 | ||
24495 | 2007-03-29 Richard Henderson <rth@redhat.com> | |
24496 | ||
24497 | * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG | |
24498 | to decide, but __SIZEOF_LONG_LONG__. | |
24499 | ||
24500 | 2007-03-29 Richard Henderson <rth@redhat.com> | |
24501 | ||
24502 | * emutls.c (struct __emutls_array): New. | |
24503 | (emutls_destroy): Use it instead of casting element 0 from void*. | |
24504 | (__emutls_get_address): Likewise. | |
24505 | ||
24506 | 2007-03-29 Richard Henderson <rth@redhat.com> | |
24507 | ||
24508 | * varasm.c (initializer_constant_valid_p): Don't deny | |
24509 | DECL_DLLIMPORT_P on functions. | |
24510 | ||
24511 | * config/i386/cygming.h: Remove function declarations. | |
24512 | (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first. | |
24513 | (ASM_OUTPUT_LABELREF): Remove. | |
24514 | (COMMON_ASM_OP): Remove. | |
24515 | (ASM_OUTPUT_COMMON): Remove. | |
24516 | (ASM_OUTPUT_ALIGNED_DECL_COMMON): New. | |
24517 | (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol. | |
24518 | (ASM_DECLARE_FUNCTION_NAME): Likewise. | |
24519 | * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO): | |
24520 | Rename from TARGET_ENCODE_SECTION_INFO. | |
24521 | * config/i386/netware.h: Likewise. | |
24522 | * config/i386/i386-protos.h: Update. | |
24523 | * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef | |
24524 | of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if. | |
24525 | (legitimate_constant_p): Reject dllimports. | |
24526 | (dllimport_map, get_dllimport_decl): New. | |
24527 | (legitimize_dllimport_symbol): New. | |
24528 | (legitimize_address, ix86_expand_move): Use it. | |
24529 | (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES. | |
24530 | * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove. | |
24531 | (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New. | |
24532 | (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New. | |
24533 | * config/i386/predicates.md (constant_call_address_operand): Only | |
24534 | accept symbols; reject dllimport_p symbols. | |
24535 | * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use | |
24536 | i386_pe_maybe_record_exported_symbol. | |
24537 | * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove. | |
24538 | (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p. | |
24539 | (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p; | |
24540 | trust the setting of DECL_DLLIMPORT_P. | |
24541 | (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove. | |
24542 | (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove. | |
24543 | (gen_stdcall_or_fastcall_suffix): Return NULL if no change required; | |
24544 | tidy the argument scanning loop. | |
24545 | (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and | |
24546 | SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS. | |
24547 | (i386_pe_strip_name_encoding): Remove. | |
24548 | (i386_pe_binds_local_p): New. | |
24549 | (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding. | |
24550 | (i386_pe_output_labelref): Remove. | |
24551 | (i386_pe_asm_output_aligned_decl_common): New. | |
24552 | (i386_pe_maybe_record_exported_symbol): Rename from | |
24553 | i386_pe_record_exported_symbol; check for dllexported symbols. | |
24554 | ||
24555 | 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu> | |
24556 | ||
24557 | * gengtype.c (oprintf): Mostly revert changes from 2007-03-26; | |
24558 | add comment explaining why vsnprintf cannot be used. | |
24559 | ||
24560 | 2007-03-29 Douglas Gregor <doug.gregor@gmail.com> | |
24561 | ||
24562 | PR tree-optimization/30666 | |
24563 | * tree.c (build_complex_type): When creating type names for DWARF2 | |
24564 | debug info, create TYPE_DECLs for TYPE_NAME instead of | |
24565 | IDENTIFIER_NODEs. | |
24566 | (build_common_tree_nodes_2): Use build_complex_type when building | |
24567 | predefined complex types, to preserve canonical types. | |
24568 | ||
24569 | 2007-03-29 Steven Bosscher <steven@gcc.gnu.org> | |
24570 | ||
24571 | * ifcvt.c (struct noce_if_info): Add then_else_reversed field. | |
24572 | (noce_get_alt_condition): Look at it to determine whether to | |
24573 | reverse the condition or not. | |
24574 | (noce_get_condition): Substitute the truth for lies. | |
24575 | (noce_find_if_block): Set the then_else_reversed field. | |
24576 | ||
24577 | 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de> | |
24578 | ||
24579 | * config/fr30/fr30.md (movdi): Do not accept immediates as the | |
24580 | destination of this insn. | |
24581 | * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather | |
24582 | than calling gen_rtx_SET directly. Use r0 to hold the value of | |
24583 | 'address + 4' rather than a stack based temporary which can be | |
24584 | mis-optimized away. | |
24585 | ||
24586 | 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com> | |
24587 | ||
24588 | * config/s390/s390.c (s390_secondary_input_reload_class, | |
24589 | s390_secondary_output_reload_class): Functions removed. | |
24590 | (s390_secondary_reload): New function. | |
24591 | (TARGET_SECONDARY_RELOAD): Target macro defined. | |
24592 | * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS, | |
24593 | SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed. | |
24594 | * config/s390/s390.md ("reload_outti", "reload_outdi", | |
24595 | "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>", | |
24596 | "reload_out<mode>"): Expanders removed. | |
24597 | ("reload<mode>_plus", "reload<mode>_nonoffmem_in", | |
24598 | "reload<mode>_nonoffmem_out"): Expanders added. | |
24599 | ||
24600 | 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com> | |
24601 | ||
24602 | * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair | |
24603 | action if SRC->DEST replacement failed anyway. | |
24604 | ||
24605 | 2007-03-28 Mike Stump <mrs@apple.com> | |
24606 | ||
24607 | * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add. | |
24608 | * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix. | |
24609 | * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef. | |
24610 | ||
24611 | 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
24612 | ||
24613 | * config.gcc: Accept barcelona as a variant of amdfam10. | |
24614 | * config/i386/i386.c (override_options): Likewise. | |
24615 | * doc/invoke.texi: Likewise. | |
24616 | ||
24617 | 2007-03-28 Eric Botcazou <ebotcazou@adacore.com> | |
24618 | ||
24619 | * tree-dfa.c (get_ref_base_and_extent): Do not expect positive | |
24620 | offsets for BIT_FIELD_REF and COMPONENT_REF. | |
24621 | ||
24622 | 2007-03-28 Richard Guenther <rguenther@suse.de> | |
24623 | ||
24624 | * tree.c (is_global_var): Move ... | |
24625 | * tree-flow-inline.h (is_global_var): ... here. | |
24626 | * tree.h (is_global_var): Remove declaration. | |
24627 | ||
24628 | 2007-03-28 Uros Bizjak <ubizjak@gmail.com> | |
24629 | ||
24630 | * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning | |
24631 | option. | |
24632 | (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option. | |
24633 | * config/i386/i386.c (ix86_tune_features): Initialize new | |
24634 | tuning option. | |
24635 | * config/i386/predicates.md (promotable_binary_operator): Use | |
24636 | TARGET_TUNE_PROMOTE_HIMODE_IMUL. | |
24637 | ||
24638 | 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com> | |
24639 | ||
24640 | PR target/31380 | |
24641 | * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX. | |
24642 | ||
24643 | 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de> | |
24644 | ||
24645 | * config/fr30/fr30.md (movsi_internal): Change destination | |
24646 | constraint from m to V and add m to the end. | |
24647 | ||
24648 | 2007-03-28 Christian Bruel <christian.bruel@st.com> | |
24649 | ||
24650 | * config/sh/sh.md (movsi_i): Fix type attribute. | |
24651 | ||
24652 | 2007-03-28 Christian Bruel <christian.bruel@st.com> | |
24653 | ||
24654 | * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length. | |
24655 | (movsf_ie): Likewise. | |
24656 | ||
24657 | 2007-03-28 Christian Bruel <christian.bruel@st.com> | |
24658 | ||
24659 | * config.gcc: Add sh4-300 to multilib. | |
24660 | * config/sh/t-mlib-sh4-300: New file. | |
24661 | ||
24662 | 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com> | |
24663 | ||
24664 | * config/s390/s390.md ("fix_trunc<mode>di2"): New expander. | |
24665 | ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from | |
24666 | fix_trunc<mode>di2. | |
24667 | ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use | |
24668 | fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2. | |
24669 | ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2", | |
24670 | "fixuns_trunctddi2"): Whitespace fix. | |
24671 | ||
24672 | 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org> | |
24673 | ||
24674 | * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after | |
24675 | the definition of struct sh_args. | |
24676 | (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT, | |
24677 | CALL_COOKIE_INT_REG_GET): Likewise. | |
24678 | ||
24679 | 2007-03-28 Steven Bosscher <steven@gcc.gnu.org> | |
24680 | ||
24681 | * ifcvt.c (cond_exec_find_if_block): Return FALSE if no | |
24682 | transformations are applied successfully. | |
24683 | ||
24684 | 2007-03-27 Douglas Gregor <doug.gregor@gmail.com> | |
24685 | ||
24686 | * tree.c (tree_contains_struct): Permit 512 tree codes. | |
24687 | * tree.h (tree_contains_struct): Ditto. | |
24688 | (MAX_TREE_CODES): Ditto. | |
24689 | (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add | |
24690 | SPARE member to store remaining padding bits. | |
24691 | ||
24692 | 2007-03-27 Anatoly Sokolov <aesok@post.ru> | |
24693 | ||
24694 | * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' | |
24695 | architecture. | |
24696 | ||
24697 | 2007-03-27 Janis Johnson <janis187@us.ibm.com> | |
24698 | ||
24699 | * configure.ac: Fix assembler test for powerpc*-linux decimal float. | |
24700 | * configure: Regenerate. | |
24701 | ||
24702 | * configure: Regenerate using the correct version of autoconf. | |
24703 | ||
24704 | 2007-03-27 Anatoly Sokolov <aesok@post.ru> | |
24705 | ||
24706 | * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack | |
24707 | pointer regs. | |
24708 | * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__" | |
24709 | regs to "__SP_L__" and "__SP_H__". | |
24710 | ||
24711 | 2007-03-27 Richard Guenther <rguenther@suse.de> | |
24712 | ||
24713 | * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and | |
24714 | computations with it with a HOST_WIDE_INT variable. | |
24715 | ||
24716 | 2007-03-26 Mike Stump <mrs@apple.com> | |
24717 | ||
24718 | * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add | |
24719 | objective-c-header, objective-c++-header and objc++-cpp-output | |
24720 | support. | |
24721 | * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise. | |
24722 | ||
24723 | 2007-03-26 Richard Henderson <rth@redhat.com> | |
24724 | ||
24725 | PR target/31361 | |
24726 | * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128, | |
24727 | IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128, | |
24728 | IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128, | |
24729 | IX86_BUILTIN_PSRLQ128): New. | |
24730 | (ix86_init_mmx_sse_builtins): Add them. | |
24731 | (ix86_expand_builtin): Expand them. | |
24732 | * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make | |
24733 | operand 2 be TImode. | |
24734 | * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16, | |
24735 | _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, | |
24736 | _mm_srli_epi64): Mark __B const. | |
24737 | (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions. | |
24738 | (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16, | |
24739 | _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use | |
24740 | new two-vector shift builtins. | |
24741 | ||
24742 | 2007-03-26 Ian Lance Taylor <iant@google.com> | |
24743 | ||
24744 | PR tree-optimization/31345 | |
24745 | * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like | |
24746 | [+INF, +INF(OVF)] into VARYING. | |
24747 | ||
24748 | 2007-03-26 Zack Weinberg <zackw@panix.com> | |
24749 | ||
24750 | * gengtype-parse.c: New file. | |
24751 | * gengtype-yacc.y: Delete. | |
24752 | * gengtype-lex.l: Don't include gengtype-yacc.h. | |
24753 | Define YY_DECL and yyterminate appropriately for recursive | |
24754 | descent parser. yylval is now a string out-parameter to yylex. | |
24755 | (HWS, EOID): New shorthand. | |
24756 | (IWORD): Add a couple more types. | |
24757 | (yylex): Add a setup stanza. Remove the complex rules for | |
24758 | detecting GTY'ed types and typedefs; replace with simple | |
24759 | keyword detectors. Adjust everything for the changed | |
24760 | definition of yylval. Ignore all pp-directives, not just #define. | |
24761 | (yyerror): Delete. | |
24762 | (parse_file): Rename yybegin; do not call yyparse. | |
24763 | (yyend): New. | |
24764 | * gengtype.c (xasprintf): Export again. | |
24765 | (this_file): New. Use everywhere __FILE__ was being used. | |
24766 | (get_lang_bitmap): Special case types defined in gengtype.c. | |
24767 | (do_typedef, new_structure): Suppress definition of certain types. | |
24768 | (new_structure): Improve diagnostics of duplicate definitions. | |
24769 | Make sure location_s is associated with input.h. | |
24770 | (nreverse_pairs, define_location_structures): New functions. | |
24771 | (main): Improve tagging of kludge types. Remove old kludges | |
24772 | for input.h types; use define_location_structures. | |
24773 | * gengtype.h: Update prototypes. Define token codes here. | |
24774 | * Makefile.in: Remove all references to gengtype-yacc. | |
24775 | Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o | |
24776 | and gengtype. | |
24777 | * bitmap.h (struct bitmap_head_def): Coalesce definitions, | |
24778 | add GTY((skip)) to the field that's only conditionally there. | |
24779 | * doc/install.texi: Document that Bison is no longer required | |
24780 | unless building treelang. | |
24781 | ||
24782 | * gengtype.c: Don't include gtyp-gen.h. | |
24783 | (srcdir): Declare here. | |
24784 | (base_files, lang_dir_names): Allocate dynamically. | |
24785 | (gt_files, num_gt_files, num_lang_dirs): New globals. | |
24786 | (measure_input_list, read_input_line, read_input_list) | |
24787 | (set_lang_bitmap): New functions. | |
24788 | (get_base_file_bitmap): Rename get_lang_bitmap and drastically | |
24789 | simplify, relying on read_input_list to set up the bitmaps. | |
24790 | (main): Arguments are no longer unused. Check for correct number | |
24791 | of command line arguments, set srcdir and srcdir_len, then call | |
24792 | read_input_list, before doing anything else. No need to worry | |
24793 | about duplicates in main loop. | |
24794 | * configure.ac: Simplify the calculation of all_gtfiles. | |
24795 | Put language tags in there. Don't set or substitute | |
24796 | all_gtfiles_files_langs or all_gtfiles_files_frags. | |
24797 | * Makefile.in: Revamp the way gengtype is invoked, now that it | |
24798 | takes a file on its command line with a much simpler format. | |
24799 | Remove or replace with gtyp-input.list all references to gtyp-gen.h. | |
24800 | (GTFILES): Remove duplicates and C source files. | |
24801 | * c-config-lang.in, cp/config-lang.in, objc/config-lang.in | |
24802 | * objcp/config-lang.in: Add c-pragma.h to gtfiles. | |
24803 | * configure: Regenerate. | |
24804 | ||
24805 | * gengtype.h: Remove all type definitions to gengtype.c; leave | |
24806 | only definitions of options_p, type_p, and pair_p as opaque | |
24807 | pointers. Update prototypes. | |
24808 | * gengtype.c: Many type definitions moved here from gengtype.h. | |
24809 | Consolidate type definitions at the top of the file. | |
24810 | (xvasprintf): Delete. | |
24811 | (xasprintf): Make static. | |
24812 | (create_nested_pointer_option): Add 'next' parameter. | |
24813 | (create_field_all, create_field_at): New functions. | |
24814 | (create_field): Now a thin wrapper around create_field_all. | |
24815 | (create_optional_field): Rename create_optional_field_ and add | |
24816 | line argument. Original name is now a macro which supplies | |
24817 | __LINE__. | |
24818 | (oprintf): Use vsnprintf directly. | |
24819 | (close_output_files): Use fatal rather than perror/exit. | |
24820 | (note_def_vec, note_def_vec_alloc): Use create_field_at. | |
24821 | (main): Set progname. Don't use exit. | |
24822 | * gengtype-yacc.y (struct_fields): Use create_field_at. | |
24823 | (option, optionseqopt): Delete. | |
24824 | (optionseq): Consolidate productions from option here so we | |
24825 | can use the first argument to create_option. | |
24826 | ||
24827 | * gengtype-lex.l: Distinguish unions from structures in the | |
24828 | token type. Don't call find_structure; return the tag as a string. | |
24829 | * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and | |
24830 | ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is | |
24831 | string. Reorganize typedef_struct production accordingly. | |
24832 | Use create_nested_ptr_option. | |
24833 | * gengtype.c (create_nested_ptr_option): New function. | |
24834 | * gengtype.h: Declare it. | |
24835 | ||
24836 | * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char. | |
24837 | (string_type): Don't declare. | |
24838 | (do_scalar_typedef): Declare. | |
24839 | (create_scalar_type): Update prototype. | |
24840 | * gengtype.c (string_type): Make static. | |
24841 | (scalar_nonchar, scalar_char): New. | |
24842 | (do_scalar_typedef): Export. Always use scalar_nonchar for the type. | |
24843 | (resolve_typedef): Use scalar_nonchar for error recovery. | |
24844 | (create_scalar_type): Remove name_len field. Return scalar_char | |
24845 | or scalar_nonchar as appropriate. | |
24846 | (adjust_field_type): Look at scalar_is_char boolean to decide whether | |
24847 | to use string_type. | |
24848 | (throughout): Use scalar_nonchar instead of calling | |
24849 | create_scalar_type, whenever possible. | |
24850 | (main): Initialize scalar_char and scalar_nonchar before calling | |
24851 | gen_rtx_next. | |
24852 | * gengtype-lex.l: Adjust for removal of second argument to | |
24853 | create_scalar_type. Use yylval.s instead of yylval.t when | |
24854 | returning SCALAR. | |
24855 | * gengtype-yacc.y: Type of SCALAR is string. Call | |
24856 | create_scalar_type from type:SCALAR rule. Adjust for removal of | |
24857 | second argument to create_scalar_type. | |
24858 | ||
24859 | * vec.h: Remove all #if IN_GENGTYPE blocks. | |
24860 | Add comment saying that changes may require adjustments to gengtype. | |
24861 | * gengtype.c: Don't include coretypes.h or tm.h. | |
24862 | Add comment to inclusion of errors.h. | |
24863 | (note_def_vec, note_def_vec_alloc): New functions. | |
24864 | * gengtype.h: Declare new functions. | |
24865 | * gengtype-lex.l: Don't include coretypes.h. | |
24866 | (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name): | |
24867 | Delete. | |
24868 | (update_lineno): Remove unnecessary prototype. | |
24869 | (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc. | |
24870 | (VEC rule): Just return VEC_TOKEN. | |
24871 | * gengtype-yacc.y (VEC_TOKEN): New token type. | |
24872 | (type): Add a production for VEC(a,b). | |
24873 | * Makefile.in: Update dependencies. | |
24874 | ||
24875 | * gengtype-lex.l: Remove rules for parsing pointer-to-function | |
24876 | typedefs that use the old PARAMS macro. | |
24877 | ||
24878 | * gengtype-lex.l: Remove all rules and states relating to yacc | |
24879 | input files. | |
24880 | * gengtype-yacc.y: Similarly. | |
24881 | * gengtype.c (note_yacc_type): Delete function. | |
24882 | * gengtype.h: Update prototypes. | |
24883 | ||
24884 | 2007-03-26 Joseph Myers <joseph@codesourcery.com> | |
24885 | ||
24886 | * tree-pretty-print.c (dump_generic_node): Report precision of | |
24887 | unnamed integer types. | |
24888 | ||
24889 | 2007-03-26 Steven Bosscher <steven@gcc.gnu.org> | |
24890 | ||
24891 | * ifcvt.c (noce_try_store_flag_constants): Don't check | |
24892 | no_new_pseudos here. | |
24893 | (noce_try_store_flag_constants): Don't check no_new_pseudos. | |
24894 | (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith, | |
24895 | noce_try_cmove_arith, noce_try_minmax, noce_try_abs, | |
24896 | noce_try_sign_mask): Likewise. | |
24897 | (if_convert): Check no_new_pseudos here. | |
24898 | ||
24899 | (cond_exec_process_if_block, noce_process_if_block, find_if_block): | |
24900 | Remove prototypes. | |
24901 | (struct noce_if_info): Add then_bb, else_bb, join_bb members. | |
24902 | (noce_get_condition): Handle new then_else_reversed argument. | |
24903 | (noce_init_if_info): Remove, fold into noce_find_if_block. | |
24904 | (noce_process_if_block): Take a struct noce_if_info as the | |
24905 | argument. Don't set up one based on ce_if_info. Update pointer | |
24906 | references accordingly. | |
24907 | (cond_move_process_if_block): Likewise. | |
24908 | (process_if_block): Removed. | |
24909 | (find_if_block): Removed. Move functionality two new functions, | |
24910 | noce_find_if_block and cond_exec_find_if_block. | |
24911 | (noce_find_if_block): New function. Be aware of IF-THEN-JOIN | |
24912 | blocks and the symmetric IF-ELSE-JOIN case. | |
24913 | (cond_exec_find_if_block): Also new function mostly based on old | |
24914 | find_if_block and process_if_block. | |
24915 | (find_if_header): Replace find_if_block call with separately | |
24916 | guarded calls to noce_find_if_block and cond_exec_find_if_block. | |
24917 | (find_cond_trap): Update noce_get_condition call. | |
24918 | (dead_or_predicable): Likewise. | |
24919 | ||
24920 | 2007-03-26 Jakub Jelinek <jakub@redhat.com> | |
24921 | ||
24922 | * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD): | |
24923 | Remove. | |
24924 | (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, | |
24925 | IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, | |
24926 | IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove. | |
24927 | (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and | |
24928 | v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128, | |
24929 | __builtin_ia32_pslld128, __builtin_ia32_psllq128, | |
24930 | __builtin_ia32_psrlw128, __builtin_ia32_psrld128, | |
24931 | __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and | |
24932 | __builtin_ia32_psrad128 builtins. | |
24933 | ||
24934 | 2007-03-26 Uros Bizjak <ubizjak@gmail.com> | |
24935 | ||
24936 | * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert(). | |
24937 | * config/i386/constraints.md | |
24938 | (define_constraint "I"): Use IN_RANGE macro. | |
24939 | (define_constraint "J"): Ditto. | |
24940 | (define_constraint "K"): Ditto. | |
24941 | (define_constraint "M"): Ditto. | |
24942 | (define_constraint "N"): Ditto. | |
24943 | (define_constraint "O"): Ditto. | |
24944 | * config/i386/predicates.md | |
24945 | (define_predicate "register_no_elim_operand"): Use IN_RANGE macro. | |
24946 | (define_predicate "const_0_to_3_operand"): Ditto. | |
24947 | (define_predicate "const_0_to_7_operand"): Ditto. | |
24948 | (define_predicate "const_0_to_15_operand"): Ditto. | |
24949 | (define_predicate "const_0_to_63_operand"): Ditto. | |
24950 | (define_predicate "const_0_to_255_operand"): Ditto. | |
24951 | (define_predicate "const_1_to_31_operand"): Ditto. | |
24952 | (define_predicate "const_2_to_3_operand"): Ditto. | |
24953 | (define_predicate "const_4_to_7_operand"): Ditto. | |
24954 | ||
24955 | 2007-03-25 David Edelsohn <edelsohn@gnu.org> | |
24956 | ||
24957 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR | |
24958 | in SImode for save_world. | |
24959 | * config/rs6000/altivec.md (save_world, restore_world): Convert to | |
24960 | LR hard reg. | |
24961 | ||
24962 | 2007-03-25 Dorit Nuzman <dorit@il.ibm.com> | |
24963 | ||
24964 | PR tree-optimization/30784 | |
24965 | * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case | |
24966 | BIT_FIELD_REF. | |
24967 | ||
24968 | 2007-03-25 Revital Eres <eres@il.ibm.com> | |
24969 | ||
24970 | * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): | |
24971 | Fold movement_possibility function into it. | |
24972 | ||
24973 | 2007-03-25 David Edelsohn <edelsohn@gnu.org> | |
24974 | ||
24975 | * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0. | |
24976 | (load_macho_picbase_{si,di}): Convert to LR hard reg. | |
24977 | (call_indirect_nonlocal_darwin64): Same. | |
24978 | (call_nonlocal_darwin64): Same. | |
24979 | (call_value_indirect_nonlocal_darwin64): Same. | |
24980 | (call_value_nonlocal_darwin64): Same. | |
24981 | (sibcall_nonlocal_darwin64): Same. | |
24982 | (sibcall_value_nonlocal_darwin64): Same. | |
24983 | (sibcall_symbolic_64): Same. | |
24984 | (sibcall_value_symbolic_64): Same. | |
24985 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove | |
24986 | LR pseudo. | |
24987 | (rs6000_emit_load_toc_table): Same. | |
24988 | * config/rs6000/altivec.md (restore_world): Convert to LR hard reg. | |
24989 | * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg. | |
24990 | (mull_call): Same. | |
24991 | (divss_call): Same. | |
24992 | (divus_call): Same. | |
24993 | (quoss_call): Same. | |
24994 | (quous_call): Same. | |
24995 | (load_toc_v4_pic_si): Same | |
24996 | (load_toc_v4_PIC_1): Same. | |
24997 | (load_toc_v4_PIC_1b): Same. | |
24998 | (call_indirect_aix{32,64}): Same. | |
24999 | (call_value_indirect_aix{32,64}): Same. | |
25000 | (call): Same. | |
25001 | (call_value): Same. | |
25002 | (call_local{32,64}): Same. | |
25003 | (call_value_local{32,64}): Same. | |
25004 | (call_indirect_nonlocal_aix{32,64}): Same. | |
25005 | (call_nonlocal_aix{32,64}): Same. | |
25006 | (call_value_indirect_nonlocal_aix{32,64}): Same. | |
25007 | (call_value_nonlocal_aix{32,64}): Same. | |
25008 | (call_indirect_nonlocal_sysv<mode>): Same. | |
25009 | (call_nonlocal_sysv<mode>): Same. | |
25010 | (call_value_indirect_nonlocal_sysv<mode>): Same. | |
25011 | (call_value_nonlocal_sysv<mode>): Same. | |
25012 | (sibcall): Same. | |
25013 | (sibcall_local{32,64}): Same. | |
25014 | (sibcall_value_local{32,64}): Same. | |
25015 | (sibcall_nonlocal_aix{32,64}): Same. | |
25016 | (sibcall_value_nonlocal_aix{32,64}): Same. | |
25017 | (sibcall_nonlocal_sysv<mode>): Same. | |
25018 | (sibcall_value): Same. | |
25019 | (sibcall_value_nonlocal_sysv<mode>): Same. | |
25020 | ||
25021 | 2007-03-24 Paul Brook <paul@codesourcery.com> | |
25022 | ||
25023 | * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push. | |
25024 | * config/arm/linux-eabi.h: Remove legacy syscall hack. | |
25025 | ||
25026 | 2007-03-24 Richard Henderson <rth@redhat.com> | |
25027 | ||
25028 | * config/ia64/constraints.md: New file. | |
25029 | * config/ia64/predicates.md: Replace CONST_OK_FOR_? with | |
25030 | satisfies_constraint_?. | |
25031 | * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p, | |
25032 | ia64_reload_gp, spill_restore_mem, ia64_expand_prologue, | |
25033 | ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs, | |
25034 | ia64_output_mi_thunk): Likewise. | |
25035 | (ia64_const_ok_for_letter_p): Remove. | |
25036 | (ia64_const_double_ok_for_letter_p): Remove. | |
25037 | (ia64_extra_constraint): Remove. | |
25038 | * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove. | |
25039 | (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, | |
25040 | CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P, | |
25041 | CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G, | |
25042 | CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT, | |
25043 | EXTRA_MEMORY_CONSTRAINT): Remove. | |
25044 | * config/ia64/ia64.md: Include constriants.md. Replace | |
25045 | CONST_OK_FOR_? with satisfies_constraint_?. | |
25046 | ||
25047 | 2007-03-23 Michael Meissner <michael.meissner@amd.com> | |
25048 | H.J. Lu <hongjiu.lu@intel.com> | |
25049 | ||
25050 | * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the | |
25051 | DPD or BID name. | |
25052 | (name macros): Use DPD_BID_NAME to convert names properly. | |
25053 | ||
25054 | * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current | |
25055 | decimal floating point format. | |
25056 | (init_floating_libfuncs): Change decimal functions so that they | |
25057 | have a "bid_" prefix if the decimal system uses the BID format, | |
25058 | and "dpd_" prefix if the decimal system uses the DPD format. | |
25059 | (init_interclass_conv_libfuncs): Ditto. | |
25060 | (init_intraclass_conv_libfuncs): Ditto. | |
25061 | ||
25062 | * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are | |
25063 | using the BID format. | |
25064 | ||
25065 | * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say | |
25066 | whether we are using the BID decimal format. | |
25067 | * configure: Regenerate. | |
25068 | ||
25069 | * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if | |
25070 | the compiler has decimal floating point enabled. Define | |
25071 | __DECIMAL_BID_FORMAT__ if BID decimal floating point is used | |
25072 | instead of DPD. | |
25073 | ||
25074 | * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are | |
25075 | using the BID format. | |
25076 | ||
25077 | * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say | |
25078 | whether we are using the BID decimal format. | |
25079 | * configure: Regenerate. | |
25080 | ||
25081 | * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if | |
25082 | the compiler has decimal floating point enabled. Define | |
25083 | __DECIMAL_BID_FORMAT__ if BID decimal floating point is used | |
25084 | instead of DPD. | |
25085 | ||
25086 | * doc/install.texi (--enable-decimal-float): Document BID and DPD | |
25087 | options, and that it is enabled for i386/x86_64 systems. | |
25088 | ||
25089 | * Makefile.in (enable_decimal_float): New. | |
25090 | (DECNUMFMT): New. | |
25091 | (DECNUMINC): Add -I$(DECNUMFMT). | |
25092 | (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h | |
25093 | to $(DECNUMFMT) from $(DECNUM). | |
25094 | ||
25095 | * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}. | |
25096 | Substitute enable_decimal_float. | |
25097 | * configure: Regenerated. | |
25098 | ||
25099 | PR other/30529 | |
25100 | * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of | |
25101 | unsigned long. | |
25102 | ||
25103 | * configure.ac: Enable decimal float for x86_64-*-linux*. | |
25104 | * configure: Regenerated. | |
25105 | ||
25106 | PR other/30530 | |
25107 | * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and | |
25108 | decimal128ClearSign to flip and clear the sign bit in decimal128. | |
25109 | (decimal_real_maxval): Set decimal128SetSign to set the sign | |
25110 | bit in decimal128. | |
25111 | ||
25112 | 2007-03-23 Ian Lance Taylor <iant@google.com> | |
25113 | ||
25114 | * fold-const.c (fold_binary): Correct warning for X - c >= X. | |
25115 | ||
25116 | 2007-03-23 Ian Lance Taylor <iant@google.com> | |
25117 | ||
25118 | * tree-dump.c (dump_files): Correct comment. | |
25119 | ||
25120 | 2007-03-23 Ian Lance Taylor <iant@google.com> | |
25121 | ||
25122 | * tree-vrp.c (operand_less_p): Ignore fold overflow warnings. | |
25123 | ||
25124 | 2007-03-23 Steven Bosscher <steven@gcc.gnu.org> | |
25125 | ||
25126 | * tracer.c (tracer): Don't take FLAGS argument. Assert we are | |
25127 | in cfglayout mode. Don't go into and out of cfglayout mode. | |
25128 | Link the blocks in the order of the constructed traces. | |
25129 | (rest_of_handle_tracer): Adjust call to tracer. | |
25130 | * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode. | |
25131 | Don't go into cfglayout mode. | |
25132 | (rtl_loop_done): Don't go out of cfglayout mode. | |
25133 | * cfglayout.c (relink_block_chain): New function, split out from... | |
25134 | (fixup_reorder_chain): ...here. Remove redundant checking. | |
25135 | (cfg_layout_finalize): Don't clear the header, footer, and aux | |
25136 | fields here, move the code to do so to relink_block_chain. Likewise | |
25137 | for free_original_copy_tables. | |
25138 | * rtl.h (tracer): Update prototype. | |
25139 | * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument. | |
25140 | Assert we are in cfglayout mode. Don't go into and out of cfglayout | |
25141 | mode. Use relink_block_chain to serialize the CFG according to the | |
25142 | new basic block order. Move targetm.cannot_modify_jumps_p check from | |
25143 | here... | |
25144 | (gate_handle_reorder_blocks): ...to here. | |
25145 | (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check | |
25146 | from here... | |
25147 | (gate_duplicate_computed_gotos): ...to here. | |
25148 | (rest_of_handle_reorder_blocks): Don't see if anything has changed, | |
25149 | something always changes when going into and out of cfglayout mode. | |
25150 | Perform an expensive cfg cleanup while going into cfglayout mode. | |
25151 | Always update liveness information on HAVE_conditional_execution | |
25152 | targets. Reserialize the basic blocks and go out of cfglayout mode. | |
25153 | * reg-stack.c: Include cfglayout.h. | |
25154 | (rest_of_handle_stack_regs): Go into and out of cfglayout mode around | |
25155 | the call to reorder_basic_blocks. | |
25156 | * basic-block.h (reorder_basic_blocks): Update prototype. | |
25157 | (relink_block_chain): New prototype. | |
25158 | * passes.c (pass_outof_cfg_layout_mode): Move after cse2. | |
25159 | ||
25160 | 2007-03-23 Joseph Myers <joseph@codesourcery.com> | |
25161 | ||
25162 | * config/mips/mips.md (type, hazard, *movdi_32bit, | |
25163 | *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc, | |
25164 | *movhi_internal, *movqi_internal, *movsf_hardfloat, | |
25165 | *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat, | |
25166 | movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high, | |
25167 | mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as | |
25168 | applicable. | |
25169 | (movcc): Change first xfer to multi. | |
25170 | * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md, | |
25171 | config/mips/5000.md, config/mips/5400.md, config/mips/5500.md, | |
25172 | config/mips/5k.md, config/mips/7000.md, config/mips/9000.md, | |
25173 | config/mips/generic.md: Change reservations using "xfer" to use | |
25174 | "mfc,mtc". | |
25175 | * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of | |
25176 | using match_operand. | |
25177 | (ir_sb1_mfxfer): Use "mfc" instead of using match_operand. | |
25178 | * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of | |
25179 | examining mode. | |
25180 | (ir_sr70_xfer_to): Use "mtc" instead of examining mode. | |
25181 | ||
25182 | 2007-03-22 Richard Henderson <rth@redhat.com> | |
25183 | ||
25184 | * config/i386/i386.c: Remove unnecessary function declarations. | |
25185 | Move targetm definition, and all related macros, to the end of | |
25186 | the file. Resort some functions to put definitions before uses. | |
25187 | (ix86_attribute_table): Make static. Move to end of file. | |
25188 | (ix86_gimplify_va_arg): Make static. | |
25189 | ||
25190 | 2007-03-22 Richard Henderson <rth@redhat.com> | |
25191 | ||
25192 | * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit; | |
25193 | don't increase local_regparm with force_align_arg_pointer check. | |
25194 | (ix86_function_sseregparm): Assert 32-bit. | |
25195 | (type_has_variadic_args_p): New. | |
25196 | (ix86_return_pops_args): Early exit for 64-bit. Reindent; use | |
25197 | type_has_variadic_args_p. | |
25198 | (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax. | |
25199 | (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum; | |
25200 | use memset instead. Do maybe_vaarg check first; skip attribute | |
25201 | tests if true; skip attribute tests for 64-bit. | |
25202 | (construct_container): Remove TARGET_DEBUG_ARG. | |
25203 | (function_arg_advance_32, function_arg_advance_64): Split out ... | |
25204 | (function_arg_advance): ... from here. | |
25205 | (function_arg_32, function_arg_64): Split out ... | |
25206 | (function_arg): ... from here. | |
25207 | (ix86_pass_by_reference): Tidy. | |
25208 | (ix86_function_value_regno_p): Rearrange w/ switch on regno. | |
25209 | (function_value_32): New, from parts of ix86_function_value | |
25210 | and ix86_value_regno. | |
25211 | (function_value_64): New, from parts of ix86_function_value | |
25212 | and ix86_libcall_value. | |
25213 | (ix86_function_value_1): New. | |
25214 | (ix86_function_value, ix86_libcall_value): Use it. | |
25215 | (return_in_memory_32, return_in_memory_64): Split out ... | |
25216 | (ix86_return_in_memory): ... from here. | |
25217 | (ix86_struct_value_rtx): Skip for 64-bit. | |
25218 | (ix86_libcall_value, ix86_value_regno): Remove. | |
25219 | (setup_incoming_varargs_64): Split out ... | |
25220 | (ix86_setup_incoming_varargs): ... from here. | |
25221 | (ix86_va_start): Remove TARGET_DEBUG_ARG. | |
25222 | (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR. | |
25223 | * config/i386/i386-protos.h (ix86_function_value): Remove. | |
25224 | * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove. | |
25225 | ||
25226 | 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
25227 | ||
25228 | PR other/23572 | |
25229 | * c-lex.c (interpret_float): On overflow, emit pedantic warning if | |
25230 | infinities not supported, otherwise emit warning if -Woverflow. On | |
25231 | underflow, emit warning if -Woverflow. | |
25232 | * real.c (real_from_string): Return -1 if underflow, +1 if overflow | |
25233 | and 0 otherwise. | |
25234 | * real.h (real_from_string): Update declaration | |
25235 | ||
25236 | 2007-03-22 Kai Tietz <kai.tietz@onevision.com> | |
25237 | Richard Henderson <rth@redhat.com> | |
25238 | ||
25239 | * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default. | |
25240 | * calls.c (compute_argument_block_size, expand_call, | |
25241 | emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE. | |
25242 | * expr.c (block_move_libcall_safe_for_call_parm): Likewise. | |
25243 | * function.c (STACK_DYNAMIC_OFFSET): Likewise. | |
25244 | * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update. | |
25245 | * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h, | |
25246 | config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h, | |
25247 | config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h, | |
25248 | config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE): | |
25249 | Set to 1. | |
25250 | ||
25251 | 2007-03-22 Joseph Myers <joseph@codesourcery.com> | |
25252 | ||
25253 | * c-incpath.c (add_sysroot_to_chain): New. | |
25254 | (merge_include_chains): Add sysroot argument. Call | |
25255 | add_sysroot_to_chain if sysrooted. | |
25256 | (register_include_chains): Update call to merge_include_chains. | |
25257 | * doc/cppopts.texi: Document use of '=' in include directory | |
25258 | arguments. | |
25259 | ||
25260 | 2007-03-22 Uros Bizjak <ubizjak@gmail.com> | |
25261 | ||
25262 | * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf. | |
25263 | Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P. | |
25264 | (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize | |
25265 | insn pattern using X87MODEF12 mode macro. | |
25266 | ||
25267 | 2007-03-21 Seongbae Park <seongbae.park@gmail.com> | |
25268 | ||
25269 | * regmove.c (regmove_optimize): Use reg_mentioned_p | |
25270 | instead of reg_overlap_mentioned_p for DST. | |
25271 | ||
25272 | 2007-03-21 Mike Stump <mrs@apple.com> | |
25273 | ||
25274 | * c.opt: Fixup for Objective-C/C++. | |
25275 | ||
25276 | 2007-03-21 Steve Ellcey <sje@cup.hp.com> | |
25277 | ||
25278 | * explow.c (convert_memory_address): Fold memory reference when | |
25279 | POINTERS_EXTEND_UNSIGNED < 0 | |
25280 | ||
25281 | 2007-03-21 Richard Henderson <rth@redhat.com> | |
25282 | ||
25283 | PR target/31245 | |
25284 | * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias. | |
25285 | * config/i386/mmintrin.h (__m64): Likewise. | |
25286 | * config/i386/xmmintrin.h (__m128): Likewise. | |
25287 | ||
25288 | 2007-03-21 Richard Sandiford <richard@codesourcery.com> | |
25289 | ||
25290 | * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options. | |
25291 | (VXWORKS_OS_CPP_BUILTINS): Define. | |
25292 | * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into... | |
25293 | (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS. | |
25294 | ||
25295 | 2007-03-21 Richard Sandiford <richard@codesourcery.com> | |
25296 | ||
25297 | * rtl.h (constant_pool_reference_p): Delete. | |
25298 | (find_constant_src): Declare. | |
25299 | * rtlanal.c (find_constant_src): New function. | |
25300 | * simplify-rtx.c (constant_pool_reference_p): Delete. | |
25301 | * config/i386/i386.md: Use find_constant_src instead of | |
25302 | constant_pool_reference_p/avoid_constant_pool_reference pairs. | |
25303 | ||
25304 | 2007-03-21 Richard Sandiford <richard@codesourcery.com> | |
25305 | ||
25306 | * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__. | |
25307 | * c-cppbuiltin.c (c_cpp_builtins): Define them. | |
25308 | ||
25309 | 2007-03-20 Mark Mitchell <mark@codesourcery.com> | |
25310 | ||
25311 | * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define. | |
25312 | * config/arm/arm.c (arm_elf_asm_cdtor): New function. | |
25313 | (arm_elf_asm_constructor): Use it. | |
25314 | (arm_elf_asm_destructor): New function. | |
25315 | ||
25316 | 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com> | |
25317 | ||
25318 | * jump.c (mark_jump_label): Treat SEQUENCE specially. | |
25319 | ||
25320 | 2007-03-20 Nathan Sidwell <nathan@codesourcery.com> | |
25321 | ||
25322 | * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks. | |
25323 | ||
25324 | 2007-03-19 Andrew Haley <aph@redhat.com> | |
25325 | ||
25326 | PR tree-optimization/31264 | |
25327 | * tree-vrp.c (register_edge_assert_for_1): Don't look though | |
25328 | VIEW_CONVERT_EXPRs. | |
25329 | ||
25330 | 2007-03-19 Paolo Bonzini <bonzini@gnu.org> | |
25331 | ||
25332 | PR rtl-optimization/30907 | |
25333 | * fwprop.c (forward_propagate_into): Never propagate inside a loop. | |
25334 | (fwprop_init): Always call loop_optimizer_initialize. | |
25335 | (fwprop_done): Always call loop_optimizer_finalize. | |
25336 | (fwprop): We always have loop info now. | |
25337 | (gate_fwprop_addr): Remove. | |
25338 | (pass_fwprop_addr): Use gate_fwprop as gate. | |
25339 | ||
25340 | PR rtl-optimization/30841 | |
25341 | * df-problems.c (df_ru_local_compute, df_rd_local_compute, | |
25342 | df_chain_alloc): Call df_reorganize_refs unconditionally. | |
25343 | * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change | |
25344 | refs_organized to refs_organized_size. | |
25345 | (df_ref_create_structure): Use refs_organized_size instead of | |
25346 | bitmap_size if refs had been organized, and keep refs_organized_size | |
25347 | up-to-date. | |
25348 | * df.h (struct df_ref_info): Change refs_organized to | |
25349 | refs_organized_size. | |
25350 | (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of | |
25351 | bitmap_size. | |
25352 | ||
25353 | 2007-03-19 Mark Mitchell <mark@codesourcery.com> | |
25354 | ||
25355 | * except.c (output_function_exception_table): Do not reference the | |
25356 | EH personality routine for functions that do not require an | |
25357 | exception table. | |
25358 | ||
25359 | 2007-03-20 Jakub Jelinek <jakub@redhat.com> | |
25360 | ||
25361 | PR c/30762 | |
25362 | * c-typeck.c (convert_for_assignment): Call comptypes for | |
25363 | RECORD_TYPE or UNION_TYPE. | |
25364 | ||
25365 | PR inline-asm/30505 | |
25366 | * reload1.c (reload): Do invalid ASM checking after | |
25367 | cleanup_subreg_operands. | |
25368 | ||
25369 | 2007-03-19 Jeff Law <law@redhat.com> | |
25370 | ||
25371 | * tree-cfg.c (find_taken_edge): Tighten conditions for | |
25372 | optimizing computed gotos. | |
25373 | ||
25374 | 2007-03-19 Michael Matz <matz@suse.de> | |
25375 | ||
25376 | * builtins.c (expand_builtin_sync_operation, | |
25377 | expand_builtin_compare_and_swap, | |
25378 | expand_builtin_lock_test_and_set): Care for extending CONST_INTs | |
25379 | correctly. | |
25380 | ||
25381 | * config/i386/sync.md (sync_double_compare_and_swapdi_pic, | |
25382 | sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint | |
25383 | for operand 3. | |
25384 | ||
25385 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25386 | ||
25387 | * doc/tm.texi: Add brackets around the return type of | |
25388 | TARGET_SECONDARY_RELOAD. | |
25389 | ||
25390 | 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
25391 | Richard Guenther <rguenther@suse.de> | |
25392 | ||
25393 | PR tree-optimization/31254 | |
25394 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): | |
25395 | Use handled_component_p () where appropriate. Continue | |
25396 | propagating into the rhs if we propagated into an INDIRECT_REF | |
25397 | on the lhs. | |
25398 | ||
25399 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25400 | ||
25401 | * config/s390/s390.md (op_type attribute): RRR instruction type added. | |
25402 | (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros. | |
25403 | (xde, xdee): Mode attributes adjusted to support DFP modes. | |
25404 | (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added. | |
25405 | ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters, | |
25406 | DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3", | |
25407 | "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3", | |
25408 | "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3", | |
25409 | "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc", | |
25410 | "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP | |
25411 | numbers. | |
25412 | ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31", | |
25413 | "movsf"): Insn definitions removed. | |
25414 | ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp", | |
25415 | "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2", | |
25416 | "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn | |
25417 | definitions added. | |
25418 | ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>", | |
25419 | "reload_in<mode>", "reload_out<mode>"): Expander added. | |
25420 | ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"): | |
25421 | Expander removed. | |
25422 | ||
25423 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25424 | ||
25425 | * config/s390/s390.md: Only non-functional changes. Renamed | |
25426 | FPR mode macro to BFP all over the file. | |
25427 | ||
25428 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25429 | ||
25430 | * config/s390/s390.md (UNSPEC_COPYSIGN): New constant. | |
25431 | (op_type attribute): RRF instruction type added. | |
25432 | (fT0): New mode attribute. | |
25433 | ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc", | |
25434 | "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added. | |
25435 | * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new | |
25436 | instruction no secondary memory is needed when moving DFmode values | |
25437 | between GPRs and FPRs. | |
25438 | ||
25439 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25440 | ||
25441 | * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value | |
25442 | inverted and documentation adjusted. | |
25443 | ("mhard-dfp", "msoft-dfp"): New options. | |
25444 | * config/s390/s390.c (s390_handle_arch_option): New architecture | |
25445 | switch: z9-ec. | |
25446 | (override_options): Sanity checks for the new options added. | |
25447 | * config.gcc: New architecture switch: z9-ec. | |
25448 | * config/s390/s390.h (processor_flags): PF_DFP added. | |
25449 | (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added. | |
25450 | (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled | |
25451 | when the bit is NOT set so remove it from the defaults. | |
25452 | ||
25453 | 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
25454 | ||
25455 | * genemit.c (main): Print include statement for dfp.h. | |
25456 | * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum | |
25457 | is not available. | |
25458 | ||
25459 | 2007-03-19 Hans-Peter Nilsson <hp@axis.com> | |
25460 | ||
25461 | * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here. | |
25462 | ||
25463 | 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org> | |
25464 | ||
25465 | PR target/31022 | |
25466 | * config/sh/sh.c (sh_adjust_cost): Use the result of single_set | |
25467 | instead of PATTERN. | |
25468 | ||
25469 | 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
25470 | ||
25471 | * pa.c (output_deferred_plabels, output_bb, output_millicode_call, | |
25472 | attr_length_call, output_call, output_indirect_call): Cleanup | |
25473 | formatting of targetm calls. | |
25474 | ||
25475 | 2007-03-19 Hans-Peter Nilsson <hp@axis.com> | |
25476 | ||
25477 | * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1. | |
25478 | ||
25479 | 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
25480 | ||
25481 | * pa.md: Add fpstore_load and store_fpload instruction types. Provide | |
25482 | reservation, bypass and anti-bypass descriptions for these | |
25483 | instructions. Update move patterns. | |
25484 | * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and | |
25485 | TYPE_FPSTORE. | |
25486 | ||
25487 | 2007-03-18 Dorit Nuzman <dorit@il.ibm.com> | |
25488 | ||
25489 | * tree-vect-transform.c (get_initial_def_for_induction): Replace | |
25490 | GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS. | |
25491 | (get_initial_def_for_reduction): Likewise. | |
25492 | ||
25493 | 2007-03-16 Daniel Berlin <dberlin@dberlin.org> | |
25494 | ||
25495 | Fix PR tree-optimization/29922 | |
25496 | * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members. | |
25497 | (get_representative): Removed. | |
25498 | (value_dies_in_block_x): Update for rvuse removal. | |
25499 | (valid_in_sets): Update for renaming of vuses_dies_in_block_x. | |
25500 | (compute_antic_aux): Handle when PHI nodes appear in | |
25501 | non-single-successors. | |
25502 | (dump_bitmap_of_names): Removed. | |
25503 | (compute_antic_safe): Renamed and removed rvuse calculation. | |
25504 | Calculate only antic safe. | |
25505 | (insert_into_preds_of_block): Remove assert. | |
25506 | (execute_pre): Update for renamed functions. | |
25507 | (defer_or_phi_translate_block): New function. | |
25508 | ||
25509 | 2007-03-17 Kazu Hirata <kazu@codesourcery.com> | |
25510 | ||
25511 | * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c, | |
25512 | config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment | |
25513 | typos. | |
25514 | * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos. | |
25515 | Follow spelling conventions. | |
25516 | ||
25517 | * tree-data-ref.h: Remove the prototype for analyze_array. | |
25518 | ||
25519 | 2007-03-17 Dorit Nuzman <dorit@il.ibm.com> | |
25520 | ||
25521 | PR tree-optimization/31041 | |
25522 | * tree-vect-transform.c (get_initial_def_for_induction): Call | |
25523 | force_gimple_operand. | |
25524 | ||
25525 | 2007-03-17 Olga Golovanevsky <olga@il.ibm.com> | |
25526 | ||
25527 | * ipa-type-escape.c (look_for_casts) : Revert code to use | |
25528 | handled_component_p due to ada test a-numaux.adb. | |
25529 | ||
25530 | 2007-03-17 Kazu Hirata <kazu@codesourcery.com> | |
25531 | ||
25532 | * final.c (final_scan_insn): Alter the condition of a | |
25533 | conditional trap if we have nonstandard CC. | |
25534 | ||
25535 | 2007-03-16 Alexandre Oliva <aoliva@redhat.com> | |
25536 | ||
25537 | * configure.ac: Remove excess quoting from asm line 0 test. | |
25538 | * configure: Rebuilt. | |
25539 | ||
25540 | 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
25541 | ||
25542 | * doc/invoke.texi (-Wconversion): Document warnings specific to C++. | |
25543 | * c-common.c (convert_and_check): Move warning logic to... | |
25544 | (warnings_for_convert_and_check): ...here. Define. | |
25545 | * c-common.h (warnings_for_convert_and_check): Declare. | |
25546 | ||
25547 | 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
25548 | ||
25549 | * pa.c (attr_length_call): Partially revert change of 2007-03-09. | |
25550 | (output_call): Likewise. | |
25551 | ||
25552 | 2007-03-16 Richard Sandiford <richard@codesourcery.com> | |
25553 | ||
25554 | * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define. | |
25555 | ||
25556 | 2007-03-16 Richard Sandiford <richard@codesourcery.com> | |
25557 | ||
25558 | * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define. | |
25559 | ||
25560 | 2007-03-16 Uros Bizjak <ubizjak@gmail.com> | |
25561 | ||
25562 | * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8, | |
25563 | opteron, athlon-64 and athlon-fx processor_alias_table entries. | |
25564 | ||
25565 | 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr> | |
25566 | ||
25567 | PR tree-optimization/31183 | |
25568 | * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): | |
25569 | Use double_int instead of unsigned int for representing access_strides. | |
25570 | * testsuite/gcc.dg/tree-ssa/pr31183.c: New. | |
25571 | ||
25572 | 2007-03-16 Richard Guenther <rguenther@suse.de> | |
25573 | ||
25574 | PR tree-optimization/31146 | |
25575 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure | |
25576 | to allow recursion of forward_propagate_addr_expr. | |
25577 | (forward_propagate_addr_into_variable_array_index): Likewise. | |
25578 | (forward_propagate_addr_expr): Likewise. | |
25579 | (tree_ssa_forward_propagate_single_use_vars): Likewise. | |
25580 | (forward_propagate_addr_expr_1): Recurse on simple copies | |
25581 | instead of propagating into them. Do so for useless conversions | |
25582 | as well. | |
25583 | (forward_propagate_addr_expr): Clean up unused statements after | |
25584 | recursion. | |
25585 | ||
25586 | 2007-03-16 Richard Guenther <rguenther@suse.de> | |
25587 | ||
25588 | * builtins.c (expand_builtin_cexpi): Use the right argument | |
25589 | for the expansion via cexp. | |
25590 | ||
25591 | 2007-03-16 Alexandre Oliva <aoliva@redhat.com> | |
25592 | ||
25593 | * configure.ac: Don't require ELF binutils to tolerate # 0 "". | |
25594 | * configure: Rebuilt. | |
25595 | ||
25596 | 2007-03-16 Alexandre Oliva <aoliva@redhat.com> | |
25597 | ||
25598 | PR debug/29906 | |
25599 | * dwarf2out.c (force_type_die): Adjust comment. | |
25600 | (dwarf2out_imported_module_or_decl): Handle base AT_import types. | |
25601 | ||
25602 | 2007-03-15 DJ Delorie <dj@redhat.com> | |
25603 | ||
25604 | * config/frv/predicates.md (minmax_operator): Don't check operands | |
25605 | here. | |
25606 | ||
25607 | 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz> | |
25608 | ||
25609 | * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument. | |
25610 | Update constant estimates of number of iterations. | |
25611 | (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p" | |
25612 | argument renamed to "realistic". | |
25613 | (compute_estimated_nb_iterations): Removed. | |
25614 | (record_niter_bound): New function. | |
25615 | (idx_infer_loop_bounds): For possible but unlikely tail arrays, | |
25616 | call record_nonwrapping_iv with upper = false. | |
25617 | (infer_loop_bounds_from_signedness): Pass upper argument to | |
25618 | record_nonwrapping_iv. | |
25619 | (estimate_numbers_of_iterations_loop): Do not call | |
25620 | compute_estimated_nb_iterations. Record estimate based on profile | |
25621 | information. Initialize the constant estimates of number of | |
25622 | iterations. | |
25623 | * tree-data-ref.c (estimated_loop_iterations): Return the recorded | |
25624 | estimates. | |
25625 | * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when | |
25626 | number of iterations is too small. | |
25627 | * cfgloop.h (struct nb_iter_bound): Remove "realistic" field. | |
25628 | (EST_NOT_AVAILABLE): Removed. | |
25629 | (struct loop): Replace estimated_nb_iterations by any_upper_bound, | |
25630 | nb_iterations_upper_bound, any_estimate and nb_iterations_estimate | |
25631 | fields. | |
25632 | ||
25633 | 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz> | |
25634 | ||
25635 | * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference): | |
25636 | Handle NE_EXPR guards. | |
25637 | ||
25638 | 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
25639 | ||
25640 | PR c++/24924 | |
25641 | * c-opts.c (c_common_post_options): Handle C++ post-processing here. | |
25642 | Set also -pedantic-errors by default for the preprocessor unless | |
25643 | -fpermissive is given. | |
25644 | ||
25645 | 2007-03-15 Richard Guenther <rguenther@suse.de> | |
25646 | ||
25647 | PR middle-end/29719 | |
25648 | PR middle-end/31161 | |
25649 | * builtins.c (expand_builtin_cexpi): As a fallback if we | |
25650 | don't have builtins for sincos or cexp create a function | |
25651 | declaration for cexp and expand to a call to that. | |
25652 | (expand_builtin_int_roundingfn): Always fall | |
25653 | back to floor/ceil and its variants even if they may be | |
25654 | not available. | |
25655 | ||
25656 | 2007-03-15 Steven Bosscher <steven@gcc.gnu.org> | |
25657 | ||
25658 | PR middle-end/31159 | |
25659 | * cfglayout.c (fixup_reorder_chain): Postpone deleting dead | |
25660 | jump tables, move the call to delete_dead_jumptables from here... | |
25661 | (cfg_layout_finalize): ...to here. But rebuild jump labels first. | |
25662 | * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing, | |
25663 | don't allow merging of blocks that try_redirect_by_replacing_jump | |
25664 | also does not handle when not optimizing. | |
25665 | ||
25666 | 2007-03-15 Uros Bizjak <ubizjak@gmail.com> | |
25667 | Francois-Xavier Coudert <coudert@clipper.ens.fr> | |
25668 | ||
25669 | * config/i386/i386.md (x86_sahf_1): Correctly handle | |
25670 | HAVE_AS_IX86_SAHF. | |
25671 | ||
25672 | 2007-03-15 Uros Bizjak <ubizjak@gmail.com> | |
25673 | ||
25674 | PR target/31167 | |
25675 | * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use | |
25676 | x86_64_general_operand as operand[2] predicate. Remove "iF" | |
25677 | from operand constraints and use "e" constraint instead. | |
25678 | (*subti3_1, *subti3_1 splitter): Ditto. | |
25679 | (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as | |
25680 | operand[1] predicate. | |
25681 | ||
25682 | 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr> | |
25683 | ||
25684 | * tree-loop-linear.c (gather_interchange_stats): For multidimensional | |
25685 | arrays, multiply the access strides by the size of the sub-array. | |
25686 | * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New. | |
25687 | ||
25688 | 2007-03-14 Uros Bizjak <ubizjak@gmail.com> | |
25689 | ||
25690 | * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether | |
25691 | the configured assembler supports the sahf mnemonic. | |
25692 | * configure: Regenerate. | |
25693 | * config.in: Regenerate. | |
25694 | ||
25695 | * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF, | |
25696 | emit "sahf" or ".byte\t0x9e" as asm template. | |
25697 | ||
25698 | 2007-03-14 Michael Meissner <michael.meissner@amd.com> | |
25699 | ||
25700 | PR 31018 | |
25701 | * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning | |
25702 | option to replace hard coded TARGET_xxx in md file. | |
25703 | (X86_TUNE_AVOID_VECTOR_DECODE): Ditto. | |
25704 | (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto. | |
25705 | (X86_TUNE_SLOW_IMUL_IMM8): Ditto. | |
25706 | (X86_TUNE_MOVE_M1_VIA_OR): Ditto. | |
25707 | (X86_TUNE_NOT_UNPAIRABLE): Ditto. | |
25708 | (X86_TUNE_NOT_VECTORMODE): Ditto. | |
25709 | (TUNE_SHORTEN_X87_SSE): Use new tuning option. | |
25710 | (TUNE_AVOID_VECTOR_DECODE): Ditto. | |
25711 | (TUNE_SLOW_IMUL_IMM32_MEM): Ditto. | |
25712 | (TUNE_SLOW_IMUL_IMM8): Ditto. | |
25713 | (TUNE_MOVE_M1_VIA_OR): Ditto. | |
25714 | (TUNE_NOT_UNPAIRABLE): Ditto. | |
25715 | (TUNE_NOT_VECTORMODE): Ditto. | |
25716 | ||
25717 | * config/i386/i386.c (ix86_tune_features): Fill in new tuning | |
25718 | options. | |
25719 | ||
25720 | * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new | |
25721 | tuning options instead of hard coded TARGET_xxx. | |
25722 | (fix ssemode peephole2's): Ditto. | |
25723 | (imul peephole2's): Ditto. | |
25724 | (movsi_or): Ditto. | |
25725 | (movdi_or_rex64): Ditto. | |
25726 | (move peephole2): Ditto. | |
25727 | (not peephole2's): Ditto. | |
25728 | ||
25729 | 2007-03-14 Dirk Mueller <dmueller@suse.de> | |
25730 | ||
25731 | * c-common.h (empty_body_warning): Rename to empty_if_body_warning. | |
25732 | * c-common.c (empty_if_body_warning): Rephrase diagnostic message. | |
25733 | * c-parser.c (c_parser_if_body): Always add an empty statement in case | |
25734 | of empty body. | |
25735 | * c-parser.c (c_parser_do_statement): Warn about empty body in | |
25736 | do/while statement. | |
25737 | * c-typeck (c_finish_if_stmt): Call empty_if_body_warning. | |
25738 | * doc/invoke.texi (-Wempty-body): Update documentation. | |
25739 | ||
25740 | 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
25741 | ||
25742 | PR c/21438 | |
25743 | * c-common.h (warn_for_div_by_zero): Declare. | |
25744 | * c-common.c (warn_for_div_by_zero): Define. | |
25745 | * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of | |
25746 | warning. | |
25747 | ||
25748 | 2007-03-14 Richard Sandiford <richard@codesourcery.com> | |
25749 | ||
25750 | * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators | |
25751 | to PREFIX and STANDARD_PREFIX. | |
25752 | ||
25753 | 2007-03-14 Richard Sandiford <richard@codesourcery.com> | |
25754 | Phil Edwards <phil@codesourcery.com> | |
25755 | ||
25756 | * gthr-vxworks.h: Add an extern "C" wrapper for C++. | |
25757 | (__gthread_once_t): Remove busy field for RTPs. | |
25758 | (__GTHREAD_ONCE_INIT): Update accordingly. | |
25759 | ||
25760 | 2007-03-14 Richard Sandiford <richard@codesourcery.com> | |
25761 | ||
25762 | * doc/invoke.texi: Document VxWorks options. | |
25763 | ||
25764 | 2007-03-14 Uros Bizjak <ubizjak@gmail.com> | |
25765 | ||
25766 | * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option. | |
25767 | ||
25768 | 2007-03-13 Seongbae Park <seongbae.park@gmail.com> | |
25769 | ||
25770 | PR tree-optimization/30590 | |
25771 | * tree-nrv.c (tree_nrv): Check for the partial update of the | |
25772 | return value. | |
25773 | ||
25774 | 2007-03-13 Alexandre Oliva <aoliva@redhat.com> | |
25775 | ||
25776 | * flags.h (flag_random_seed): Remove declaration, in favor of... | |
25777 | * toplev.h (get_random_seed, set_random_seed): ... these. | |
25778 | * tree.c (get_file_function_name): Use the former. | |
25779 | * opts.c (common_handle_option): Use the latter. | |
25780 | * toplev.c | |
25781 | ||
25782 | 2007-03-13 Steven Bosscher <steven@gcc.gnu.org> | |
25783 | ||
25784 | PR middle-end/31127 | |
25785 | * cse.c (cse_find_path): Do not bail out if a basic block that | |
25786 | we already visited now becomes part of a path that starts at a | |
25787 | different basic block. Just disallow this, to make sure we | |
25788 | visit each basic block at most once. | |
25789 | ||
25790 | 2007-03-13 Jan Hubicka <jh@suse.cz> | |
25791 | ||
25792 | * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold | |
25793 | attributes, when profile esitmate is present, calls with very low | |
25794 | frequency are cold. | |
25795 | ||
25796 | 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz> | |
25797 | ||
25798 | PR tree-optimization/30730 | |
25799 | PR tree-optimization/26900 | |
25800 | * tree-ssa-loop-niter.c: Include gmp.h. | |
25801 | (bounds): New type. | |
25802 | (mpz_set_double_int, get_type_bounds, mpz_to_double_int, | |
25803 | split_to_var_and_offset, determine_value_range, | |
25804 | bound_difference_of_offsetted_base, refine_bounds_using_guard, | |
25805 | bound_difference, bounds_add, bounds_negate, | |
25806 | number_of_iterations_ne_max, dump_affine_iv): New functions. | |
25807 | (number_of_iterations_ne, number_of_iterations_lt_to_ne, | |
25808 | assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the | |
25809 | difference of initial and final value of control iv to validate | |
25810 | results. | |
25811 | (number_of_iterations_cond): Add loop parameter. Determine bounds | |
25812 | on the difference of the extremes of the control iv. Add dumps. | |
25813 | (expand_simple_operations): Handle phi nodes. | |
25814 | (simplify_using_initial_conditions): Do not record used conditions. | |
25815 | (number_of_iterations_exit): Pass loop to number_of_iterations_cond. | |
25816 | Do not set additional_info. | |
25817 | (implies_nonnegative_p, implies_ge_p): Removed. | |
25818 | (derive_constant_upper_bound): Do not use parameter `additional'. | |
25819 | (record_estimate): Parameter `additional' removed. Parameter | |
25820 | `i_bound' added. Do not call derive_constant_upper_bound. | |
25821 | (record_nonwrapping_iv): Use derive_constant_upper_bound to | |
25822 | bound the number of iterations estimate. | |
25823 | (estimate_numbers_of_iterations_loop): Pass the estimate from | |
25824 | the number of iterations analysis to record_estimate. | |
25825 | * tree.h (multiple_of_p): Declare. | |
25826 | * tree-scalar-evolution.c (expression_expensive_p): Removed. | |
25827 | (scev_const_prop): Do not check expression_expensive_p. | |
25828 | * fold-const.c (multiple_of_p): Exported. | |
25829 | * double-int.c (double_int_mask): Exported. | |
25830 | * double-int.h (double_int_mask): Declare. | |
25831 | * tree-flow.h (struct tree_niter_desc): Removed additional_info | |
25832 | field. Added max field. | |
25833 | ||
25834 | 2007-03-13 David Taylor <taylor@candd.org> | |
25835 | ||
25836 | PR driver/12448 | |
25837 | * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass | |
25838 | default -MQ. | |
25839 | ||
25840 | 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
25841 | ||
25842 | PR target/31123 | |
25843 | * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for | |
25844 | two unamed patterns. | |
25845 | ||
25846 | 2007-03-13 Uros Bizjak <ubizjak@gmail.com> | |
25847 | ||
25848 | * config/i386/i386.opt (mcx16, msahf): New options. | |
25849 | * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove. | |
25850 | (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC. | |
25851 | ||
25852 | * config/i386/driver-i386.c (bit_LAHF_LM): New define. | |
25853 | (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits. | |
25854 | Output -mcx16 and -msahf options when corresponding bit is set. | |
25855 | ||
25856 | * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16 | |
25857 | and -msahf options. | |
25858 | ||
25859 | 2007-03-13 Alexandre Oliva <aoliva@redhat.com> | |
25860 | ||
25861 | * configure.ac: Test for assembler tolerance to # 0 "". | |
25862 | * configure, config.in: Rebuilt. | |
25863 | * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO. | |
25864 | ||
25865 | 2007-03-13 Geoffrey Keating <geoffk@apple.com> | |
25866 | ||
25867 | * doc/invoke.texi (Spec Files): Update for '%{,' spec. | |
25868 | ||
25869 | * config/rs6000/darwin-fallback.c: Compile file only on powerpc. | |
25870 | (handle_syscall): Handle direct system calls. | |
25871 | * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete. | |
25872 | ||
25873 | 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com> | |
25874 | ||
25875 | * doc/invoke.texi: Fix cpp.info cross-reference. | |
25876 | * doc/passes.texi: Fix gcc.info cross-reference. | |
25877 | ||
25878 | 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz> | |
25879 | ||
25880 | PR tree-optimization/30835 | |
25881 | * lambda-code.c (can_convert_to_perfect_nest): Check whether | |
25882 | bb_for_stmt is not NULL before accessing it. | |
25883 | ||
25884 | 2007-03-12 Joseph Myers <joseph@codesourcery.com> | |
25885 | ||
25886 | * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for | |
25887 | some multilibs. | |
25888 | ||
25889 | 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com> | |
25890 | ||
25891 | PR 30635 | |
25892 | * doc/install.texi: Document --enable-stage1-languages | |
25893 | ||
25894 | 2007-03-12 Steven Bosscher <steven@gcc.gnu.org> | |
25895 | ||
25896 | * tree-pass.h (pass_into_cfg_layout_mode, | |
25897 | pass_outof_cfg_layout_mode): Declare. | |
25898 | * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode, | |
25899 | pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New. | |
25900 | * passes.c (pass_into_cfg_layout_mode): Schedule before jump2. | |
25901 | (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt. | |
25902 | ||
25903 | 2007-03-12 Seongbae Park <seongbae.park@gmail.com> | |
25904 | ||
25905 | * c-decl.c (warn_variable_length_array): New function. | |
25906 | Refactored from grokdeclarator to handle warn_vla | |
25907 | and handle unnamed array case. | |
25908 | (grokdeclarator): Refactored VLA warning case. | |
25909 | * c.opt (Wvla): New flag. | |
25910 | * doc/invoke.texi (Wvla): New warning. | |
25911 | ||
25912 | 2007-03-12 Richard Henderson <rth@redhat.com> | |
25913 | ||
25914 | * config/alpha/alpha.c (alpha_elf_section_type_flags): New. | |
25915 | (TARGET_SECTION_TYPE_FLAGS): New. | |
25916 | ||
25917 | 2007-03-12 Richard Henderson <rth@redhat.com> | |
25918 | ||
25919 | * config/darwin.c (machopic_reloc_rw_mask): New. | |
25920 | * config/darwin-protos.h (machopic_reloc_rw_mask): Declare. | |
25921 | * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New. | |
25922 | ||
25923 | 2007-03-12 Mark Mitchell <mark@codesourcery.com> | |
25924 | ||
25925 | * cppdefault.c (cpp_EXEC_PREFIX): New variable. | |
25926 | * cppdefault.h (cpp_PREFIX): Document. | |
25927 | (cpp_PREFIX_len): Likewise. | |
25928 | (cpp_EXEC_PREFIX): New variable. | |
25929 | * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX. | |
25930 | * c-incpath.c (add_standard_paths): Correct logic for relocating | |
25931 | paths within prefix. | |
25932 | ||
25933 | 2007-03-12 Uros Bizjak <ubizjak@gmail.com> | |
25934 | ||
25935 | * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from | |
25936 | fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF | |
25937 | mode macro. | |
25938 | (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and | |
25939 | fix_truncdfdi_sse using SSEMODEF mode macro. | |
25940 | (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and | |
25941 | fix_truncdfsi_sse using SSEMODEF mode macro. | |
25942 | (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro. | |
25943 | (fix_trunc?f?i_sse K8 peephole2): Fix register constraint. | |
25944 | ||
25945 | 2007-03-12 Richard Sandiford <richard@codesourcery.com> | |
25946 | ||
25947 | * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add | |
25948 | elfos.h to tm_file. | |
25949 | ||
25950 | 2007-03-12 Olga Golovanevsky <olga@il.ibm.com> | |
25951 | ||
25952 | * tree.h : Add multiple_of_p declaration. | |
25953 | * fold-const.c (multiple_of_p): Make multiple_of_p public. | |
25954 | * ipa-type-escape.c (results_of_malloc): Redundant. | |
25955 | (visited_stmts): New. Visited stmt for walk_use_def_chains. | |
25956 | (cast_type): Extended with new members. | |
25957 | (check_cast): Returns cast_type. | |
25958 | (cast): New structure for data of walk_use_def_chains. | |
25959 | (is_malloc_result, is_cast_from_non_pointer_1, | |
25960 | is_cast_from_non_pointer, | |
25961 | is_array_access_through_pointer_and_index): New functions. | |
25962 | (look_for_casts): Returns cast types. | |
25963 | (check_call): Returns void. | |
25964 | (okay_pointer_operation): Use support of pointer plus index, | |
25965 | pointer plus constant and allow all multiplications. | |
25966 | ||
25967 | 2007-03-11 Richard Guenther <rguenther@suse.de> | |
25968 | ||
25969 | PR tree-optimization/31115 | |
25970 | * tree-vrp.c (extract_range_from_binary_expr): Make sure | |
25971 | the shift count is positive and non-anti-range for RSHIFT_EXPR. | |
25972 | A shift count of zero is not special as with *_DIV_EXPR. | |
25973 | (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow | |
25974 | direction. | |
25975 | ||
25976 | 2007-03-11 Ian Lance Taylor <iant@google.com> | |
25977 | ||
25978 | * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and | |
25979 | the *_DIV_EXPR codes correctly with overflow infinities. | |
25980 | ||
25981 | 2007-03-11 Ira Rosen <irar@il.ibm.com> | |
25982 | ||
25983 | * tree-data-ref.c (analyze_offset): Add a return value (bool) to | |
25984 | indicate success/failure of the analysis. Add negation to subtrahend | |
25985 | in case of subtraction. Fail if both operands contain constants. | |
25986 | (create_data_ref): Fail if analyze_offset fails. | |
25987 | ||
25988 | 2007-03-11 Uros Bizjak <ubizjak@gmail.com> | |
25989 | ||
25990 | * config/i386/i386.md (frndintxf2): Rename to ... | |
25991 | (rintxf2): ... this. Remove expander having same name. | |
25992 | (rintsf2, rintdf2): Implement using SSEMODEF macro. | |
25993 | (roundsf2, rounddf2): Ditto. | |
25994 | (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro. | |
25995 | (lround<mode>di2, lround<mode>si2): Ditto. | |
25996 | ||
25997 | 2007-03-11 Steven Bosscher <steven@gcc.gnu.org> | |
25998 | ||
25999 | * lower-subreg.c: Include except.h. | |
26000 | (decompose_multiword_subregs): Verify that the only control flow | |
26001 | insns we can split are loads to multi-words pseudos. | |
26002 | Handle breaking such blocks after splitting, instead of calling | |
26003 | find_many_sub_basic_blocks. | |
26004 | ||
26005 | * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK | |
26006 | on the new basic block. Add a lengthy comment explaining why we | |
26007 | thought this was necessary. | |
26008 | * cfglayout.c (cfg_layout_finalize): Don't break superblocks. | |
26009 | ||
26010 | 2007-03-10 Mark Mitchell <mark@codesourcery.com> | |
26011 | ||
26012 | PR c++/30924 | |
26013 | * tree.c (walk_type_fields): Recurse into the element type of | |
26014 | ARRAY_TYPEs if there is a pointer set. | |
26015 | ||
26016 | 2007-03-10 Dirk Mueller <dmueller@suse.de> | |
26017 | ||
26018 | * c-common.c (warn_logical_operator): Fix condition. | |
26019 | ||
719bb4e3 | 26020 | 2007-03-10 Tobias Schlüter <tobi@gcc.gnu.org> |
f13d199c RB |
26021 | |
26022 | * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing | |
26023 | quotation mark. | |
26024 | * config/darwin.c (machopic_select_section): Remove superfluous | |
26025 | argument in call to categorize_decl_for_section. Remove unused | |
26026 | variable shlib. | |
26027 | ||
26028 | 2007-03-10 Joseph Myers <joseph@codesourcery.com> | |
26029 | ||
26030 | * configure.ac (glibc_header_dir): Set using with_build_sysroot if | |
26031 | defined. | |
26032 | * configure: Regenerate. | |
26033 | ||
26034 | 2007-03-10 Uros Bizjak <ubizjak@gmail.com> | |
26035 | ||
26036 | PR target/31101 | |
26037 | * config/i386/i386.md (UNSPEC_C2_FLAG): New constant. | |
26038 | (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG. | |
26039 | (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3): | |
26040 | Add LABEL_NUSES to emitted label. | |
26041 | * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add | |
26042 | branch probability value to emitted jump insn. | |
26043 | * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG. | |
26044 | Do not check life information and do not re-arrange input operands | |
26045 | for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U. | |
26046 | ||
26047 | 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org> | |
26048 | ||
26049 | * config/sh/sh.c (sh_insn_length_adjustment): Adjust for | |
26050 | the change of decode_asm_operands. | |
26051 | ||
26052 | 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org> | |
26053 | ||
26054 | * mode-switching.c (create_pre_exit): Skip blockage insn. | |
26055 | ||
26056 | 2007-03-09 Diego Novillo <dnovillo@redhat.com> | |
26057 | ||
26058 | * tree-pass.h (TODO_update_smt_usage): Remove. | |
26059 | Update all users. | |
26060 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove | |
26061 | argument SOME. | |
26062 | Update all users. | |
26063 | ||
26064 | 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
26065 | ||
26066 | * pa.c (attr_length_call): Revise condition for long | |
26067 | pc-relative branch. | |
26068 | (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long | |
26069 | local calls on the SOM target. Don't use "LONG_PIC_PCREL" call | |
26070 | sequence on SOM target. | |
26071 | ||
26072 | 2007-03-09 Geoffrey Keating <geoffk@apple.com> | |
26073 | ||
26074 | * gcc.c: Document %{, in big comment at top. | |
26075 | (input_suffix_matches): Remove special handling for .s and | |
26076 | .S. | |
26077 | (input_spec_matches): New. | |
26078 | (handle_braces): Handle %{,. | |
26079 | (validate_switches): ',' indicates a value which is not a switch. | |
26080 | * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{. | |
26081 | to detect assembler input. | |
26082 | * config/i386/sol2.h (CPP_SPEC): Likewise. | |
26083 | * config/rs6000/sysv4.h (ASM_SPEC): Likewise. | |
26084 | * config/rs6000/vxworks.h (ASM_SPEC): Likewise. | |
26085 | * config/rs6000/lynx.h (ASM_SPEC): Likewise. | |
26086 | * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. | |
26087 | * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus | |
26088 | -m64 causes deployment target to default to 10.5. | |
26089 | * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise. | |
26090 | ||
26091 | 2007-03-09 Richard Henderson <rth@redhat.com> | |
26092 | ||
26093 | PR target/26090 | |
26094 | * target.h (targetm.asm.out.reloc_rw_mask): New. | |
26095 | * target-def.h (TARGET_ASM_RELOC_RW_MASK): New. | |
26096 | (TARGET_ASM_OUT): Use it. | |
26097 | * targhooks.c, targhooks.h (default_reloc_rw_mask): New. | |
26098 | * varasm.c (categorize_decl_for_section): Remove shlib argument; | |
26099 | use the new reloc_rw_mask target hook instead. | |
26100 | (default_section_type_flags_1): Merge into... | |
26101 | (default_section_type_flags): ... here. | |
26102 | (decl_readonly_section_1): Merge into... | |
26103 | (decl_readonly_section): ... here. | |
26104 | (default_elf_select_section_1): Merge into... | |
26105 | (default_elf_select_section): ... here. | |
26106 | (default_unique_section_1): Merge into... | |
26107 | (default_unique_section): ... here. | |
26108 | (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New. | |
26109 | (default_select_rtx_section): Use it. | |
26110 | (default_elf_select_rtx_section): Likewise. | |
26111 | * output.h: Update to match. | |
26112 | * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New. | |
26113 | * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New. | |
26114 | (TARGET_ASM_RELOC_RW_MASK): New. | |
26115 | * config/i386/i386.c (x86_64_elf_select_section): Adjust call | |
26116 | to categorize_decl_for_section. | |
26117 | (x86_64_elf_unique_section): Likewise. | |
26118 | * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION, | |
26119 | TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove. | |
26120 | (TARGET_ASM_RELOC_RW_MASK): New. | |
26121 | * config/ia64/ia64.c (ia64_rwreloc_select_section, | |
26122 | ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove. | |
26123 | (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New. | |
26124 | (TARGET_RWRELOC): Remove. | |
26125 | (ia64_section_type_flags): Adjust call to default_section_type_flags. | |
26126 | * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New. | |
26127 | * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove. | |
26128 | (rs6000_elf_select_section, rs6000_elf_unique_section): Remove. | |
26129 | (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New. | |
26130 | (rs6000_xcoff_select_section): Use decl_readonly_section. | |
26131 | (rs6000_xcoff_section_type_flags): Use default_section_type_flags. | |
26132 | * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New. | |
26133 | (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove. | |
26134 | (TARGET_SECTION_TYPE_FLAGS): Remove. | |
26135 | * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New. | |
26136 | ||
26137 | 2007-03-09 Roger Sayle <roger@eyesopen.com> | |
26138 | ||
26139 | * fold-const.c (fold_comparison): Remove compile-time evaluation of | |
26140 | complex constant equality/inequality comparisons for here. | |
26141 | (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are | |
26142 | known at compile-time or can be simplified to a scalar comparison. | |
26143 | (fold_relational_const): Move compile-time evaluation of complex | |
26144 | constant equality/inequality comparisons to here. | |
26145 | ||
26146 | 2007-03-09 Alexandre Oliva <aoliva@redhat.com> | |
26147 | ||
26148 | PR rtl-optimization/30643 | |
26149 | * cse.c (cse_insn): Recompute dest_hash after insert_regs for | |
26150 | dest_addr_elt. | |
26151 | (fold_rtx): Recurse, like before 2006-11-03. | |
26152 | ||
26153 | 2007-03-09 DJ Delorie <dj@redhat.com> | |
26154 | ||
26155 | * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to | |
26156 | m32c-pragma.o. | |
26157 | ||
26158 | 2007-03-09 Aldy Hernandez <aldyh@redhat.com> | |
26159 | ||
26160 | PR tree-optimization/30375 | |
26161 | * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if | |
26162 | LHS of statements is not the same. | |
26163 | * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New. | |
26164 | ||
26165 | 2007-03-09 Chao-ying Fu <fu@mips.com> | |
26166 | ||
26167 | * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP | |
26168 | REV 2. | |
26169 | * doc/invoke.texi (-mdspr2): Document new option. | |
26170 | * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH): | |
26171 | New unspec for DSP REV 2. | |
26172 | (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because | |
26173 | these instructions are extended in DSP REV 2. | |
26174 | (mips-dspr2.md): Include. | |
26175 | * config/mips/mips.opt (mdspr2): New option. | |
26176 | * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI, | |
26177 | MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI, | |
26178 | MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI. | |
26179 | (override_options): Check TARGET_DSPR2 to enable MASK_DSP. | |
26180 | (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3. | |
26181 | (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins. | |
26182 | (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1 | |
26183 | and 2 builtins. | |
26184 | (bdesc_map): Add one field of unsupported_target_flags. | |
26185 | (bdesc_arrays): Update entries to have extra fields. Add | |
26186 | dsp_32only_bdesc. | |
26187 | (mips_init_builtins): Initialize new function types. | |
26188 | Check unsupported_target_fileds to filter out builtins. | |
26189 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if | |
26190 | TARGET_DSPR2. | |
26191 | (ASM_SPEC): Pass mdspr2 to the assembler. | |
26192 | * config/mips/mips-dspr2.md: New file. | |
26193 | ||
26194 | 2007-03-09 Sa Liu <saliu@de.ibm.com> | |
26195 | ||
26196 | * config/rs6000/altivec.md: Fix vcond patterns using if_then_else. | |
26197 | ||
26198 | 2007-03-09 Ian Lance Taylor <iant@google.com> | |
26199 | ||
26200 | * opts.c (common_handle_option): Treat -Wstrict-overflow (with no | |
26201 | argument) like -Wstrict-overflow=2. | |
26202 | * doc/invoke.texi (Warning Options): Update documentation. | |
26203 | ||
26204 | 2007-03-09 Dirk Mueller <dmueller@suse.de> | |
26205 | ||
26206 | PR c++/17946 | |
26207 | * doc/invoke.texi (-Wlogical-op): Document. | |
26208 | * common.opt (-Wlogical-op): New. | |
26209 | * c-common.h (warn_logical_operator): Declare. | |
26210 | * c-common.c (warn_logical_operator): Define. | |
26211 | * c-typeck.c (parser_build_binary_op): Call | |
26212 | warn_logical_operator. | |
26213 | ||
26214 | 2007-03-09 Alexandre Oliva <aoliva@redhat.com> | |
26215 | ||
26216 | * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name. | |
26217 | * final.c (final_scan_insn): Test for non-"" file name. | |
26218 | ||
26219 | 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr> | |
26220 | ||
26221 | * doc/loop.texi: Document the Omega linear constraints solver. | |
26222 | * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars, | |
26223 | omega-max-geqs, omega-max-eqs, omega-max-wild-cards, | |
26224 | omega-hash-table-size, omega-max-keys, and | |
26225 | omega-eliminate-redundant-constraints. | |
26226 | * tree-pass.h (pass_check_data_deps): Declared. | |
26227 | * omega.c: New. | |
26228 | * omega.h: New. | |
26229 | * timevar.def (TV_CHECK_DATA_DEPS): Declared. | |
26230 | * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, | |
26231 | pass_check_data_deps): New. | |
26232 | * tree-data-ref.c (init_data_ref): Remove declaration. | |
26233 | (dump_data_dependence_relation): Dump DDR_INNER_LOOP. | |
26234 | (analyze_array): Renamed init_array_ref, move up initializations. | |
26235 | (init_data_ref): Renamed init_pointer_ref. Moved before its call. | |
26236 | Removed arguments that are set to NULL. | |
26237 | (analyze_indirect_ref): Correct indentation, correct call to | |
26238 | init_pointer_ref. | |
26239 | (object_analysis): Call init_array_ref instead of analyze_array. | |
26240 | (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP. | |
26241 | (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead | |
26242 | of DR_ACCESS_FNS_ADDR. | |
26243 | (init_omega_eq_with_af, omega_extract_distance_vectors, | |
26244 | omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr, | |
26245 | ddr_consistent_p): New. | |
26246 | (compute_affine_dependence): Check consistency of ddrs when | |
26247 | flag_check_data_deps is passed. | |
26248 | (analyze_all_data_dependences): Uncomment. | |
26249 | (tree_check_data_deps): New. | |
26250 | * tree-data-ref.h: Include omega.h. | |
26251 | (DR_ACCESS_FNS_ADDR): Removed. | |
26252 | (data_dependence_relation): Add inner_loop. | |
26253 | (DDR_INNER_LOOP): New. | |
26254 | * common.opt (fcheck-data-deps): New. | |
26255 | * tree-flow.h (tree_check_data_deps): Declare. | |
26256 | * Makefile.in (TREE_DATA_REF_H): Depend on omega.h. | |
26257 | (OBJS-common): Depend on omega.o. | |
26258 | (omega.o): Define. | |
26259 | * passes.c (pass_check_data_deps): Scheduled. | |
26260 | * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, | |
26261 | PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS, | |
26262 | PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, | |
26263 | PARAM_VECT_MAX_VERSION_CHECKS, | |
26264 | PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New. | |
26265 | ||
26266 | 2007-03-09 Richard Guenther <rguenther@suse.de> | |
26267 | ||
26268 | PR tree-optimization/30904 | |
26269 | PR middle-end/31058 | |
26270 | * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR | |
26271 | the same way as *_DIV_EXPR. | |
26272 | ||
26273 | 2007-03-09 Alexandre Oliva <aoliva@redhat.com> | |
26274 | ||
26275 | * recog.c (decode_asm_operands): No mixed declarations and code. | |
26276 | ||
26277 | 2007-03-09 Alexandre Oliva <aoliva@redhat.com> | |
26278 | ||
26279 | * rtl.def (ASM_INPUT): Add location. | |
26280 | * rtl.h (ASM_INPUT_SOURCE_LOCATION): New. | |
26281 | (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New. | |
26282 | (decode_asm_operands): Add loc operand. | |
26283 | (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define. | |
26284 | * stmt.c (expand_asm): Rename to... | |
26285 | (expand_asm_loc): ... this. Add locus argument. Pass it on to | |
26286 | gen_rtx_ASM_INPUT_loc. | |
26287 | (expand_asm_expr): Adjust. | |
26288 | * recog.c (decode_asm_operands): Add loc operand. | |
26289 | (check_asm_operands, extract_insn): Adjust. | |
26290 | * reload1.c (maybe_fix_stack_asms): Likewise. | |
26291 | * final.c (asm_insn_count): Likewise. | |
26292 | (final_scan_insn): Output # line before and after asm. | |
26293 | ||
26294 | 2007-03-09 Daniel Berlin <dberlin@dberlin.org> | |
26295 | ||
26296 | * tree-ssa-structalias.c (variable_info): Remove | |
26297 | finished_solution. | |
26298 | (new_var_info): Ditto. | |
26299 | (shared_bitmap_info_t): New structure. | |
26300 | (shared_bitmap_table): New variable. | |
26301 | (shared_bitmap_hash): New function. | |
26302 | (shared_bitmap_eq): Ditto | |
26303 | (shared_bitmap_lookup): Ditto. | |
26304 | (shared_bitmap_add): Ditto. | |
26305 | (merge_smts_into): Change to take bitmap directly. | |
26306 | (find_what_p_points_to): Rewrite to use shared bitmap hashtable. | |
26307 | (init_alias_vars): Init shared bitmap hashtable. | |
26308 | (delete_points_to_sets): Delete shared bitmap hashtable. | |
26309 | * tree-ssa-operands.c (add_virtual_operand): Partially revert the | |
26310 | is_aliased removal as a change that was still necessary was | |
26311 | deleted. | |
26312 | ||
26313 | 2007-03-09 Uros Bizjak <ubizjak@gmail.com> | |
26314 | ||
26315 | * config/i386/i386.h (override_options): Conditionally disable | |
26316 | x86_sahf for 64bit targets only. | |
26317 | ||
26318 | 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
26319 | ||
26320 | PR C/31072 | |
26321 | * c-decl.c (merge_decls): Don't call make_var_volatile. | |
26322 | * varasm.c (make_var_volatile): Remove. | |
26323 | * output.h (make_var_volatile): Remove. | |
26324 | ||
26325 | 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz> | |
26326 | ||
26327 | PR tree-optimization/31085 | |
26328 | * tree-ssa-address.c (create_mem_ref): Fix test of type of base. | |
26329 | ||
26330 | 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
26331 | ||
26332 | * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl, | |
26333 | llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with | |
26334 | ATTR_CONST_NOTHROW_LIST. | |
26335 | ||
26336 | * fold-const.c (tree_expr_nonnegative_warnv_p): Handle | |
26337 | FIX_TRUNC_EXPR. | |
26338 | ||
26339 | 2007-03-08 Diego Novillo <dnovillo@redhat.com> | |
26340 | ||
26341 | * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF. | |
26342 | ||
26343 | 2007-03-08 Geoffrey Keating <geoffk@apple.com> | |
26344 | ||
26345 | PR 31013 | |
26346 | * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME | |
26347 | is declared. | |
26348 | * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is | |
26349 | passed, use shared libgcc. | |
26350 | ||
26351 | 2007-03-08 Roger Sayle <roger@eyesopen.com> | |
26352 | ||
26353 | * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt | |
26354 | instead of calling build2 with a GIMPLE_MODIFY_STMT. | |
26355 | (honor_protect_cleanup_actions, lower_try_finally_switch): | |
26356 | Likewise. | |
26357 | * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt, | |
26358 | ifc_temp_var): Likewise. | |
26359 | * tree-inline.c (setup_one_parameter): Likewise. | |
26360 | * tree-mudflap.c (mf_decl_cache_locals, | |
26361 | mf_build_check_statement_for): Likewise. | |
26362 | * tree-nested.c (init_tmp_var, save_tmp_var, | |
26363 | finalize_nesting_tree_1): Likewise. | |
26364 | * tree-outof-ssa.c (insert_copy_on_edge, | |
26365 | insert_backedge_copies): Likewise. | |
26366 | * tree-profile.c (tree_gen_edge_profiler, | |
26367 | tree_gen_ic_profiler): Likewise. | |
26368 | * tree-scalar-evolution.c (scev_const_prop): Likewise. | |
26369 | * tree-sra.c (sra_build_assignment): Likewise. | |
26370 | * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise. | |
26371 | * tree-ssa-math-opts.c (insert_reciprocals, | |
26372 | execute_cse_sincos_1): Likewise. | |
26373 | * tree-tailcall.c (adjust_accumulator_values, | |
26374 | adjust_return_value): Likewise. | |
26375 | * tree-vect-patterns.c (vect_pattern_recog_1): Likewise. | |
26376 | * tree-vect-transform.c (vect_create_data_ref_ptr, | |
26377 | bump_vector_ptr, vect_init_vector, get_initial_def_for_induction, | |
26378 | vect_create_epilog_for_reduction, vectorizable_reduction, | |
26379 | vectorizable_call, vectorizable_conversion, | |
26380 | vectorizable_assignment, vectorizable_operation, | |
26381 | vectorizable_type_demotion, vect_gen_widened_results_half, | |
26382 | vect_permute_store_chain, vectorizable_store, | |
26383 | vect_setup_realignment, vect_permute_load_chain, | |
26384 | vectorizable_load, vectorizable_condition, | |
26385 | vect_create_cond_for_align_checks): Likewise. | |
26386 | * tree-vrp.c (build_assert_expr_for): Likewise. | |
26387 | ||
26388 | 2007-03-08 Ian Lance Taylor <iant@google.com> | |
26389 | ||
26390 | * tree-vrp.c: Include "intl.h". | |
26391 | (usable_range_p): New static function. | |
26392 | (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for | |
26393 | overflowed values, juts set *strict_overflow_p. | |
26394 | (compare_values): Only return -2 if one of the operands is not a | |
26395 | constant. | |
26396 | (compare_ranges): Call usable_range_p. | |
26397 | (compare_range_with_value): Likewise. | |
26398 | (vrp_evaluate_conditional_warnv): Rename from | |
26399 | vrp_evaluate_conditional. Make static. Change all callers. | |
26400 | (vrp_evaluate_conditional): New function. | |
26401 | (simplify_div_or_mod_using_ranges): Issue warning about reliance | |
26402 | on signed overflow. | |
26403 | (simplify_abs_using_ranges): Likewise. | |
26404 | (simplify_stmt_for_jump_threading): Add within_stmt parameter. | |
26405 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add | |
26406 | within_stmt parameter. | |
26407 | * tree-ssa-propagate.c (fold_predicate_in): Update call to | |
26408 | vrp_evaluate_conditional. | |
26409 | * tree-ssa-threadedge.c | |
26410 | (record_temporary_equivalences_from_stmts_at_dest): Change | |
26411 | simplify parameter to take a second tree parameter. | |
26412 | (simplify_control_stmt_condition): Likewise. | |
26413 | (thread_across_edge): Likewise. | |
26414 | * tree-flow.h (vrp_evaluate_conditional): Update declaration. | |
26415 | (thread_across_edge): Likewise. | |
26416 | * Makefile.in (tree-vrp.o): Depend upon intl.h. | |
26417 | ||
26418 | 2007-03-08 Uros Bizjak <ubizjak@gmail.com> | |
26419 | ||
26420 | * config/i386/i386.h (TARGET_SAHF): New define. | |
26421 | * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]: | |
26422 | Also enable for m_K8, m_AMDFAM10 and m_CORE2. | |
26423 | (x86_sahf): New global variable. | |
26424 | (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode | |
26425 | pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and | |
26426 | nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set | |
26427 | in processor flags. Do not unconditionally disable TARGET_USE_SAHF | |
26428 | for 64-bit. | |
26429 | (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF. | |
26430 | (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF | |
26431 | when expanding fcomi/sahf based tests. | |
26432 | (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when | |
26433 | expanding sahf based alternative. Emit sahf based sequence when | |
26434 | optimizing for code size. | |
26435 | * config/i386/i386.md (x86_sahf_1): Do not disable for | |
26436 | TARGET_64BIT, enable for TARGET_SAHF. | |
26437 | ||
26438 | 2007-03-08 Martin Michlmayr <tbm@cyrius.com> | |
26439 | ||
26440 | * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove | |
26441 | spurious whitespace from error message. | |
26442 | ||
be349cac | 26443 | 2007-03-08 Volker Reichelt <v.reichelt@netcologne.de> |
f13d199c RB |
26444 | |
26445 | PR c++/30852 | |
26446 | * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR. | |
26447 | ||
26448 | 2007-03-08 Alexandre Oliva <aoliva@redhat.com> | |
26449 | ||
26450 | * c-decl.c (grokdeclarator): Disable warnings for anonymous | |
26451 | bitfields. | |
26452 | * tree-sra.c (instantiate_element): Propagate disabled warnings | |
26453 | from the element itself to the created variable. | |
26454 | ||
26455 | 2007-03-07 Richard Henderson <rth@redhat.com> | |
26456 | ||
26457 | PR target/30848 | |
26458 | * reg-stack.c (emit_swap_insn): If a malformed asm was seen, | |
26459 | silently fix up the stack in the case of a missing register. | |
26460 | ||
26461 | 2007-03-07 Paul Brook <paul@codesourcery.com> | |
26462 | ||
26463 | * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds. | |
26464 | ||
26465 | 2007-03-07 Joseph Myers <joseph@codesourcery.com> | |
26466 | ||
26467 | * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs): | |
26468 | New. | |
26469 | (phase1_vrs): Use them. | |
26470 | (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New. | |
26471 | (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD, | |
26472 | __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare. | |
26473 | (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and | |
26474 | __gnu_Unwind_Restore_WMMXC if required. | |
26475 | (_Unwind_VRS_Pop): Implement iWMMXt support. | |
26476 | * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD, | |
26477 | gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC, | |
26478 | gnu_Unwind_Save_WMMXC): Define. | |
26479 | ||
26480 | 2007-03-07 Richard Sandiford <richard@codesourcery.com> | |
26481 | ||
26482 | * config/vxworks.h (vxworks_override_options): Declare. | |
26483 | (VXWORKS_OVERRIDE_OPTIONS): Use it. | |
26484 | * config/vxworks.c: Include target.h and toplev.h. | |
26485 | (vxworks_override_options): New function. | |
26486 | * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h. | |
26487 | ||
26488 | 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com> | |
26489 | ||
26490 | * config/s390/s390.c (override_options): Don't emit an error when | |
26491 | -mstack-size is used without providing -mstack-guard. | |
26492 | (s390_emit_prologue): Choose stack_guard value automatically if not | |
26493 | provided via command line. | |
26494 | * doc/invoke.texi: Adjust description of -mstack-guard and | |
26495 | -mstack-size. | |
26496 | ||
26497 | 2007-03-07 Richard Sandiford <richard@codesourcery.com> | |
26498 | ||
26499 | * config/i386/i386.c (output_set_got): Add a GOT initialization | |
26500 | sequence for VxWorks PIC. | |
26501 | (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers | |
26502 | around labels as well as symbols. Use gotoff_operand instead | |
26503 | of local_symbolic_operand. | |
26504 | (legitimize_pic_address): Use gotoff_operand instead of | |
26505 | local_symbolic_operand. Use @GOT accesses for labels as | |
26506 | well as symbols. | |
26507 | (ix86_output_addr_diff_elt): Use PC-relative rather than | |
26508 | GP-relative offsets for VxWorks PIC. | |
26509 | (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless | |
26510 | no_new_pseudos. Check whether the returned register is op0. | |
26511 | * config/i386/i386.md (tablejump): Use PC-relative rather than | |
26512 | GP-relative offsets for VxWorks PIC. | |
26513 | * config/i386/predicates.md (gotoff_operand): New predicate. | |
26514 | ||
26515 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26516 | ||
26517 | * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine | |
26518 | before defining. | |
26519 | * config/vxworks-dummy.h: New file. | |
26520 | * config/i386/i386.h: Include it. | |
26521 | ||
26522 | 2007-03-07 Alexandre Oliva <aoliva@redhat.com> | |
26523 | ||
26524 | * dwarf2out.c (is_inlined_entry_point): New | |
26525 | (add_high_low_attributes): Emit DW_AT_entry_pc along with | |
26526 | DW_AT_ranges if the first subblock is the entry point. | |
26527 | ||
26528 | 2007-03-06 David Daney <ddaney@avtrex.com> | |
26529 | ||
26530 | * doc/install.texi (mips-*-*): Change recommended binutils | |
26531 | version. | |
26532 | ||
26533 | 2007-03-06 Anatoly Sokolov <aesok@post.ru> | |
26534 | ||
26535 | * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P, | |
26536 | ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 | |
26537 | devices. | |
26538 | * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). | |
26539 | * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). | |
26540 | ||
26541 | 2007-03-06 Jan Hubicka <jh@suse.cz> | |
26542 | ||
26543 | * errors.h (warning, error, fatal, internal_error): Mark as cold. | |
26544 | * predict.c (maybe_hot_bb): Cold functions are never hot; hot | |
26545 | functions are hot. | |
26546 | (probably_cold_bb_p): Cold functions are cold. | |
26547 | (probably_never_executed_bb_p): Cold functions are cold. | |
26548 | (tree_bb_level_predictions): Predict calls to cold functions as not | |
26549 | taken. | |
26550 | (compute_function_frequency): Check hot/cold attributes. | |
26551 | * function.h (function_frequency): Update comments. | |
26552 | * predict.def (PRED_COLD_FUNCTION): Predict cold function. | |
26553 | * c-common.c (handle_hot_attribute, handle_cold_attribute): New. | |
26554 | (c_common_att): Add cold and hot. | |
26555 | ||
26556 | * doc/extend.texi (hot,cold attributes): Document. | |
26557 | ||
26558 | 2007-03-06 Andrew Haley <aph@redhat.com> | |
26559 | ||
26560 | * function.c (expand_function_end): Move blockage to just after we | |
26561 | emit the label for the naked return from the function. | |
26562 | ||
26563 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26564 | ||
26565 | * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine | |
26566 | before redefining. | |
26567 | ||
26568 | 2007-03-06 Jan Hubicka <jh@suse.cz> | |
26569 | ||
26570 | * reg-stack.c (reg_to_stack): Large models don't allow NAN to be | |
26571 | loaded for constant large models. Non-large 64bit PIC can do. | |
26572 | * config/i386/i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit. | |
26573 | * cmodel.h: Add LARGE PIC. | |
26574 | * config/i386/i386.md (UNSPEC_PLTOFF): New. | |
26575 | (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other | |
26576 | unspecs as needed. | |
26577 | (*call_1_rex64): Disable for large models. | |
26578 | (*call_1_rex64_large): New. | |
26579 | (*call_value_1_rex64): Disable for large models. | |
26580 | (*call_value_1_rex64_large): New. | |
26581 | (set_rip_rex4): New. | |
26582 | (set_got_offset_rex64): New. | |
26583 | * config/i386/predicates.md (constant_call_address_operand): For | |
26584 | large model constant calls are not possible. | |
26585 | * config/i386/i386-protos.h (construct_plt_address): Declare. | |
26586 | * config/i386/i386.c (override_options): Accept large models. | |
26587 | (ix86_expand_prologue): Expand large PIC GOT pointer load. | |
26588 | (legitimate_constant_p): Add new UNSPECs. | |
26589 | (legitimate_pic_operand_p): Likewise. | |
26590 | (legitimate_pic_address_disp_p): Disallow local symbols for large PICs. | |
26591 | (legitimize_pic_address): Do easy RIP relative way for TLS only for | |
26592 | non-large model. | |
26593 | (output_pic_addr_const): Add PLTOFF. | |
26594 | (ix86_output_addr_diff_elt): Output 64bit tables when needed. | |
26595 | (ix86_expand_move): Legitimize pic address when in PIC mode. | |
26596 | (construct_plt_address): New function. | |
26597 | (ix86_expand_call): Offload the address to register and use GOT | |
26598 | pointer for large model. | |
26599 | * invoke.texi (mcmodel=large): Update documentation. | |
26600 | ||
26601 | 2007-03-06 Richard Henderson <rth@redhat.com> | |
26602 | ||
26603 | * config/i386/i386.c (x86_use_leave, x86_push_memory, | |
26604 | x86_zero_extend_with_and, x86_movx, x86_double_with_add, | |
26605 | x86_use_bit_test, x86_unroll_strlen, x86_deep_branch, | |
26606 | x86_branch_hints, x86_use_sahf, x86_partial_reg_stall, | |
26607 | x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop, | |
26608 | x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify, | |
26609 | x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, | |
26610 | x86_single_stringop, x86_qimode_math, x86_promote_qi_regs, | |
26611 | x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8, | |
26612 | x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, | |
26613 | x86_partial_reg_dependency, x86_memory_mismatch_stall, | |
26614 | x86_prologue_using_move, x86_epilogue_using_move, x86_shift1, | |
26615 | x86_sse_partial_reg_dependency, x86_sse_split_regs, | |
26616 | x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, | |
26617 | x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec, | |
26618 | x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit, | |
26619 | x86_schedule, x86_use_bt, x86_pad_returns, | |
26620 | x86_use_xchgb): Merge into ... | |
26621 | (ix86_tune_features): ... here. New array. | |
26622 | (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd, | |
26623 | x86_bswap): Merge into ... | |
26624 | (ix86_arch_features): ... here. New array. | |
26625 | (x86_3dnow_a): Remove. | |
26626 | (x86_accumulate_outgoing_args): Make static. | |
26627 | (x86_arch_always_fancy_math_387): Make static. | |
26628 | (ix86_tune_mask, ix86_arch_mask): Move ... | |
26629 | (override_options): ... to local variables here. Apply the | |
26630 | appropriate mask to each element of ix86_arch_features and | |
26631 | ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF | |
26632 | as were done in the old macros. | |
26633 | (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS. | |
26634 | * config/i386/i386.h (x86_use_leave, x86_push_memory, | |
26635 | x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch, | |
26636 | x86_branch_hints, x86_unroll_strlen, x86_double_with_add, | |
26637 | x86_partial_reg_stall, x86_movx, x86_use_himode_fiop, | |
26638 | x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb, | |
26639 | x86_read_modify_write, x86_read_modify, x86_split_long_moves, | |
26640 | x86_promote_QImode, x86_single_stringop, x86_fast_prefix, | |
26641 | x86_himode_math, x86_qimode_math, x86_promote_qi_regs, | |
26642 | x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4, | |
26643 | x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8, | |
26644 | x86_partial_reg_dependency, x86_memory_mismatch_stall, | |
26645 | x86_accumulate_outgoing_args, x86_prologue_using_move, | |
26646 | x86_epilogue_using_move, x86_decompose_lea, | |
26647 | x86_arch_always_fancy_math_387, x86_shift1, | |
26648 | x86_sse_partial_reg_dependency, x86_sse_split_regs, | |
26649 | x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, | |
26650 | x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves, | |
26651 | x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd, | |
26652 | x86_use_incdec, x86_pad_returns, x86_bswap, | |
26653 | x86_partial_flag_reg_stall): Remove. | |
26654 | (enum ix86_tune_indices): New. | |
26655 | (ix86_tune_features): New. | |
26656 | (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND, | |
26657 | TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN, | |
26658 | TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS, | |
26659 | TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX, | |
26660 | TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL, | |
26661 | TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0, | |
26662 | TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES, | |
26663 | TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode, | |
26664 | TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH, | |
26665 | TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS, | |
26666 | TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4, | |
26667 | TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES, | |
26668 | TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY, | |
26669 | TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS, | |
26670 | TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR, | |
26671 | TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE, | |
26672 | TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP, | |
26673 | TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE, | |
26674 | TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS, | |
26675 | TARGET_EXT_80387_CONSTANTS): Use it. | |
26676 | (enum ix86_arch_indices): New. | |
26677 | (ix86_arch_features): New. | |
26678 | (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD, | |
26679 | TARGET_BSWAP): Use it. | |
26680 | (ix86_tune_mask, ix86_arch_mask): Remove. | |
26681 | ||
26682 | 2007-03-06 Joseph Myers <joseph@codesourcery.com> | |
26683 | ||
26684 | PR bootstrap/31020 | |
26685 | * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir): | |
26686 | Define using $${sysroot_headers_suffix}. | |
26687 | * configure: Regenerate. | |
26688 | * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a | |
26689 | multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC | |
26690 | defined. | |
26691 | * doc/invoke.texi (-print-sysroot-headers-suffix): Document. | |
26692 | * gcc.c (print_sysroot_headers_suffix): New. | |
26693 | (option_map): Include --print-sysroot-headers-suffix. | |
26694 | (display_help): Mention -print-sysroot-headers-suffix. | |
26695 | (process_command): Handle -print-sysroot-headers-suffix. | |
26696 | (do_spec_1): Append multilib directory to include-fixed path if | |
26697 | sysroot suffixes in use. | |
26698 | (main): Handle -print-sysroot-headers-suffix. | |
26699 | * Makefile.in (start.encap): Don't depend on xlimits.h | |
26700 | (xlimits.h): Remove. | |
26701 | (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of | |
26702 | limits.h for each multilib in fixinc_list. | |
26703 | (fixinc_list, s-fixinc_list): New. | |
26704 | (stmp-fixinc): Depend on fixinc_list. If not copying headers, | |
26705 | generate them for each multilib in fixinc_list. | |
26706 | (stmp-fixproto): Use include-fixed. Run fixproto for each | |
26707 | multilib in fixinc_list. | |
26708 | (mostlyclean): Don't remove xlimits.h. | |
26709 | (clean): Remove include-fixed. | |
26710 | (real-install-headers-tar, real-install-headers-cpio, | |
26711 | real-install-headers-cp): Don't copy include, only include-fixed. | |
26712 | (install-mkheaders): Depend on fixinc_list. Don't depend on | |
26713 | xlimits.h. Save limits.h files for each multilib in fixinc_list. | |
26714 | Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in | |
26715 | SYSTEM_HEADER_DIR setting in mkheaders.conf. | |
26716 | ||
26717 | 2007-03-06 Jan Hubicka <jh@suse.cz> | |
26718 | ||
26719 | * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load | |
26720 | NANs easilly. | |
26721 | ||
26722 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26723 | ||
26724 | * configure.ac: Allow tm_file to contain build-directory files. | |
26725 | * configure: Regenerate. | |
26726 | * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file. | |
26727 | * config/m68k/t-uclinux (sysroot-suffix.h): New target. | |
26728 | * config/m68k/print-sysroot-suffix.sh: New file. | |
26729 | ||
26730 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26731 | ||
26732 | * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO | |
26733 | of pic_offset_table_rtx if reload_completed. | |
26734 | (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of | |
26735 | PIC_OFFSET_TABLE_REGNUM. | |
26736 | * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always | |
26737 | return true. | |
26738 | (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO. | |
26739 | (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset. | |
26740 | ||
26741 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26742 | ||
26743 | * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in | |
26744 | functions that call eh_return. | |
26745 | ||
26746 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26747 | ||
26748 | * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in | |
26749 | functions that need a constant pool. | |
26750 | ||
26751 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26752 | ||
26753 | PR target/28181 | |
26754 | * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare. | |
26755 | (m68k_preferred_reload_class): Likewise. | |
26756 | * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment. | |
26757 | (SECONDARY_RELOAD_CLASS): Define. | |
26758 | (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class. | |
26759 | (LIMIT_RELOAD_CLASS): Delete. | |
26760 | * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address | |
26761 | registers from storing bytes. | |
26762 | (m68k_secondary_reload_class): New function. | |
26763 | (m68k_preferred_reload_class): Likewise. | |
26764 | ||
26765 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26766 | ||
26767 | * config/m68k/m68k.c (m68k_save_reg): Remove special case for | |
26768 | leaf functions. | |
26769 | (m68k_expand_prologue): Likewise. | |
26770 | ||
26771 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26772 | ||
26773 | * config/m68k/m68k-protos.h (output_sibcall): Declare. | |
26774 | (mips_expand_epilogue): Add a bool parameter. | |
26775 | (m68k_legitimize_sibcall_address): Declare. | |
26776 | * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. | |
26777 | (m68k_expand_epilogue): Add a parameter to select between sibling | |
26778 | and normal epilogues. Only generate a return for the latter. | |
26779 | (m68k_ok_for_sibcall_p): New function. | |
26780 | (m68k_legitimize_sibcall_address, output_sibcall): New functions. | |
26781 | * config/m68k/m68k.md (sibcall, *sibcall): New patterns. | |
26782 | (sibcall_value, *sibcall_value): Likewise. | |
26783 | (*call, *call_value): Require !SIBLING_CALL_P. | |
26784 | (epilogue): Update call to m68k_expand_epilogue. | |
26785 | (sibcall_epilogue): New pattern. | |
26786 | * config/m68k/predicates.md (const_call_operand): Say that this | |
26787 | predicate applies to sibling calls too. | |
26788 | (sibcall_operand): New predicate. | |
26789 | ||
26790 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26791 | ||
26792 | * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q | |
26793 | alternatives as movsi_cf. | |
26794 | (movsf_cf_hard): Add commentary. | |
26795 | ||
26796 | 2007-03-06 Kazu Hirata <kazu@codesourcery.com> | |
26797 | Richard Sandiford <richard@codesourcery.com> | |
26798 | ||
26799 | * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare. | |
26800 | (m68k_movem_pattern_p, m68k_output_movem): Likewise. | |
26801 | (m68k_expand_prologue, m68k_expand_epilogue): Likewise. | |
26802 | * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers | |
26803 | as being live on exit from an interrupt function. | |
26804 | (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'. | |
26805 | * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros. | |
26806 | (m68k_frame): Remove reg_rev_mask and fpu_rev_mask. | |
26807 | (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete. | |
26808 | (m68k_interrupt_function_p): Globalize. | |
26809 | (m68k_compute_frame_layout): Remove reverse mask code. | |
26810 | (m68k_emit_movem, m68k_set_frame_related): New functions. | |
26811 | (m68k_output_function_prologue): Delete in favor of... | |
26812 | (m68k_expand_prologue): ...this new function. | |
26813 | (m68k_output_function_epilogue): Delete in favor of... | |
26814 | (m68k_expand_epilogue): ...this new function. | |
26815 | (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New | |
26816 | functions. | |
26817 | (print_operand): Handle %?. | |
26818 | * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space. | |
26819 | (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants. | |
26820 | (prologue, epilogue): New patterns. | |
26821 | (return): Turn into a define_expand. | |
26822 | (*return): New pattern, derived from old "return" pattern. Use rte | |
26823 | rather than rts for interrupt functions. Only use rtd if the pop | |
26824 | count is nonzero. | |
26825 | (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns. | |
26826 | (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise. | |
26827 | (link, *link, unlink, *unlink, load_got): Likewise. | |
26828 | ||
26829 | 2007-03-06 Richard Sandiford <richard@codesourcery.com> | |
26830 | ||
26831 | PR target/23482 | |
26832 | PR target/17114 | |
26833 | * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare. | |
26834 | (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise. | |
26835 | (m68k_matches_q_p, m68k_matches_u_p): Likewise. | |
26836 | * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p | |
26837 | and m68k_matches_u_p. | |
26838 | (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete. | |
26839 | (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete. | |
26840 | (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete. | |
26841 | (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete. | |
26842 | (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete. | |
26843 | (REG_STRICT_P): New macro. | |
26844 | (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than | |
26845 | PCREL_GENERAL_OPERAND_OK. | |
26846 | (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and | |
26847 | m68k_legitimate_base_reg_p. | |
26848 | (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p. | |
26849 | (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p. | |
26850 | (PIC_CASE_VECTOR_ADDRESS): Update comment. | |
26851 | * config/m68k/m68k.c (m68k_address): New structure. | |
26852 | (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p) | |
26853 | (m68k_decompose_index, m68k_legitimate_constant_address_p) | |
26854 | (m68k_jump_table_ref_p, m68k_decompose_address) | |
26855 | (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p) | |
26856 | (m68k_matches_u_p): New functions. | |
26857 | (print_operand_address): Rewrite to use m68k_decompose_index. | |
26858 | ||
26859 | 2007-03-05 David Taylor <dtaylor@emc.com> | |
26860 | ||
26861 | * gcc.c: Correct copyright date in --version output. | |
26862 | ||
26863 | 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
26864 | ||
26865 | * pa.md: In unamed move patterns, disparge copies between general | |
26866 | and floating point registers using '?' modifier. Don't include 'f' | |
26867 | constraint for register preferences in DImode, SImode, HImode and | |
26868 | QImode patterns. Likewise for 'r' in DFmode and SFmode patterns. | |
26869 | Remove constraints for copies between general and floating registers | |
26870 | in soft-float DFmode pattern. | |
26871 | (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard | |
26872 | floating register. | |
26873 | (movsf): Likewise. | |
26874 | ||
26875 | 2007-03-05 Mike Stump <mrs@apple.com> | |
26876 | ||
26877 | * c-common.c (targetcm): Add. | |
26878 | * c-opts.c (c_common_handle_option): Handle language specific | |
26879 | target options. | |
26880 | * opts.c (handle_option): Verify language for target options, if | |
26881 | any are given. | |
26882 | * opth-gen.awk: Add CL_LANG_ALL. | |
26883 | * target-def.h (TARGET_HANDLE_C_OPTION): Add. | |
26884 | (TARGETCM_INITIALIZER): Add. | |
26885 | * target.h (struct gcc_targetcm): Add. | |
26886 | (targetcm): Add. | |
26887 | * targhooks.c (default_handle_c_option): Add. | |
26888 | * targhooks.h (default_handle_c_option): Add. | |
26889 | * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add. | |
26890 | ||
26891 | * config/darwin.opt (iframework): Add. | |
26892 | * config/darwin.h (TARGET_HAS_TARGETCM): Add. | |
26893 | * config/darwin-c.c (handle_c_option): Add. | |
26894 | (TARGET_HANDLE_C_OPTION): Add. | |
26895 | (targetcm): Add. | |
26896 | * doc/invoke.texi (Darwin Options): Add -iframework. | |
26897 | ||
26898 | 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
26899 | ||
26900 | * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint | |
26901 | conversion. | |
26902 | ||
26903 | 2007-03-05 Ian Lance Taylor <iant@google.com> | |
26904 | ||
26905 | * c.opt (fgnu89-inline): New option. | |
26906 | * c-opts.c (c_common_post_options): Set default value for | |
26907 | flag_gnu89_inline. | |
26908 | * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove. | |
26909 | (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for | |
26910 | inline functions. | |
26911 | (diagnose_mismatched_decls, merge_decls, start_decl): Likewise. | |
26912 | (grokdeclarator, start_function): Likewise. | |
26913 | * c-cppbuiltin.c (c_cpp_builtins): Define either | |
26914 | __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__. | |
26915 | * doc/invoke.texi (Option Summary): Mention -fgnu89-inline. | |
26916 | (C Dialect Options): Document -fgnu89-inline. | |
26917 | * doc/extend.texi (Function Attributes): Explain what the | |
26918 | gnu_inline attribute does. | |
26919 | * doc/cpp.texi (Common Predefined Macros): Document | |
26920 | __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__. | |
26921 | ||
26922 | 2007-03-05 Ian Lance Taylor <iant@google.com> | |
26923 | ||
26924 | PR tree-optimization/31034 | |
26925 | * tree-vrp.c (extract_range_from_assert): Don't try to handle a | |
26926 | half-range if the other side is an overflow infinity. | |
26927 | ||
26928 | 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com> | |
26929 | ||
26930 | * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux. | |
26931 | (bfin*-linux-uclibc*): New configuration. | |
26932 | * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before | |
26933 | defining. | |
26934 | * config/bfin/linux.h: New file. | |
26935 | * config/bfin/libgcc-bfin.ver: New file. | |
26936 | * config/bfin/t-bfin-uclinux: New file. | |
26937 | * config/bfin/t-bfin-linux: New file. | |
26938 | * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro. | |
26939 | (TARGET_OS_CPP_BUILTINS): New macro. | |
26940 | ||
26941 | 2007-03-05 Richard Guenther <rguenther@suse.de> | |
26942 | ||
26943 | * fold-const.c (fold_binary): Remove duplicate folding | |
26944 | of comparison of non-null ADDR_EXPR against null. | |
26945 | ||
26946 | 2007-03-05 Richard Guenther <rguenther@suse.de> | |
26947 | Dorit Nuzman <dorit@il.ibm.com> | |
26948 | ||
26949 | PR tree-optimization/26420 | |
26950 | * tree-vectorizer.c (vectorize_loops): Bail out early if there | |
26951 | are no loops in the function. Only print the number of | |
26952 | vectorized loops if it is greater than zero or we are supposed | |
26953 | to print information about unvectorized loops. | |
26954 | ||
26955 | 2007-03-05 Revital Eres <eres@il.ibm.com> | |
26956 | ||
26957 | * gcc.dg/var-expand1.c: New test. | |
26958 | * loop-unroll.c (analyze_insn_to_expand_var): Add dump info | |
26959 | when an accumulator is expanded. | |
26960 | ||
26961 | 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
26962 | ||
26963 | PR other/30465 | |
26964 | * c-common.c (convert_and_check): Don't give warnings for | |
26965 | conversion if 'expr' already overflowed. | |
26966 | ||
26967 | 2007-03-04 Roger Sayle <roger@eyesopen.com> | |
26968 | ||
26969 | PR middle-end/30744 | |
26970 | * fold-const.c (fold_comparison): Enforce type consistency when | |
26971 | transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C. | |
26972 | ||
26973 | 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz> | |
26974 | ||
26975 | * tree-ssa-address.c (create_mem_ref): Do not put an expression | |
26976 | containing a cast to the base of TARGET_MEM_REF. | |
26977 | ||
26978 | 2007-03-04 Martin Michlmayr <tbm@cyrius.com> | |
26979 | ||
26980 | * tree.c (tree_contains_struct_check_failed): Remove spurious | |
26981 | whitespace from error message. | |
26982 | ||
26983 | 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
26984 | ||
26985 | PR target/30406 | |
26986 | * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size | |
26987 | instead of precision. | |
26988 | ||
26989 | 2007-03-04 Roman Zippel <zippel@linux-m68k.org> | |
26990 | Nathan Sidwell <nathan@codesourcery.com> | |
26991 | ||
26992 | * emit-rtl.c (find_auto_inc): New. | |
26993 | (try_split): recreate REG_INC notes, | |
26994 | Use regular for loops rather than whiles. | |
26995 | ||
26996 | 2007-03-03 Andreas Schwab <schwab@suse.de> | |
26997 | ||
26998 | * configure.ac (HAVE_AS_REL16): Move test back to correct place. | |
26999 | * configure: Regenerate. | |
27000 | ||
27001 | 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27002 | ||
27003 | * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on | |
27004 | flag_rounding_math, not flag_unsafe_math_optimizations. | |
27005 | ||
27006 | * c-pretty-print.c (pp_c_direct_abstract_declarator): Use | |
27007 | fold_build2. | |
27008 | * config/alpha/alpha.c (alpha_fold_builtin_zapnot, | |
27009 | alpha_fold_vector_minmax): Likewise. | |
27010 | * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. | |
27011 | * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. | |
27012 | ||
27013 | 2007-03-02 Eric Botcazou <ebotcazou@adacore.com> | |
27014 | ||
27015 | * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction. | |
27016 | (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use | |
27017 | if the lhs has side-effects. | |
27018 | <lhs_elt>: Treat the reference as a use if the rhs has side-effects. | |
27019 | ||
27020 | 2007-03-02 Uros Bizjak <ubizjak@gmail.com> | |
27021 | ||
27022 | * config/i386/i386.h (TUNEMASK): Remove define. | |
27023 | (ARCHMASK): Remove define. | |
27024 | (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK. | |
27025 | Use ix86_arch_mask variable instead of ARCHMASK. | |
27026 | * config/i386/i386.c (override_options): Ditto. | |
27027 | (standard_80387_constant_p): Ditto. | |
27028 | ||
27029 | 2007-03-02 Ian Lance Taylor <iant@google.com> | |
27030 | ||
27031 | Used signed infinities in VRP. | |
27032 | * tree-vrp.c (uses_overflow_infinity): New static function. | |
27033 | (supports_overflow_infinity): New static function. | |
27034 | (make_overflow_infinity): New static function. | |
27035 | (negative_overflow_infinity): New static function. | |
27036 | (positive_overflow_infinity): New static function. | |
27037 | (is_negative_overflow_infinity): New static function. | |
27038 | (is_positive_overflow_infinity): New static function. | |
27039 | (is_overflow_infinity): New static function. | |
27040 | (overflow_infinity_range_p): New static function. | |
27041 | (compare_values_warnv): New function split out of compare_values. | |
27042 | (compare_value): Call it. | |
27043 | (set_value_range_to_nonnegative): Add overflow_infinity | |
27044 | parameter. Change caller. | |
27045 | (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter. | |
27046 | Change callers. | |
27047 | (vrp_expr_computes_nonzero): Likewise. | |
27048 | (compare_ranges, compare_range_with_value): Likewise. | |
27049 | (compare_name_with_value, compare_names): Likewise. | |
27050 | (vrp_evaluate_conditional): Likewise. | |
27051 | (set_value_range): Handle infinity | |
27052 | (vrp_operand_equal_p, operand_less_p): Likewise. | |
27053 | (extract_range_from_assert): Likewise. | |
27054 | (vrp_int_const_binop): Likewise. | |
27055 | (extract_range_from_binary_expr): Likewise. | |
27056 | (extract_range_from_unary_expr): Likewise. | |
27057 | (extract_range_from_comparison): Likewise. | |
27058 | (extract_range_from_expr): Likewise. | |
27059 | (dump_value_range): Likewise. | |
27060 | (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise. | |
27061 | (test_for_singularity): Likewise. | |
27062 | (vrp_int_const_binop): Remove inline qualifier. | |
27063 | (adjust_range_with_scev): Add comment. | |
27064 | * tree-flow.h (vrp_evaluate_conditional): Update declaration. | |
27065 | ||
27066 | 2007-03-02 Diego Novillo <dnovillo@redhat.com> | |
27067 | ||
27068 | * tree-ssa-structalias.c (could_have_pointers): Tidy. | |
27069 | (get_constraint_for): Likewise. | |
27070 | (do_structure_copy): Likewise. | |
27071 | (find_func_aliases): Fix references to MODIFY_EXPR. | |
27072 | (intra_create_variable_infos): Tidy. | |
27073 | * tree-ssa-operands.c (add_virtual_operand): Add argument | |
27074 | IS_CALL_SITE. | |
27075 | When adding members of alias sets, if IS_CALL_SITE is true and | |
27076 | the symbol is not call-clobbered, skip it. | |
27077 | Adjust all callers. | |
27078 | ||
27079 | 2007-03-02 Eric Botcazou <ebotcazou@adacore.com> | |
27080 | ||
27081 | * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the | |
27082 | entry by means of emit_insn_at_entry. | |
27083 | ||
27084 | 2007-03-02 Richard Henderson <rth@redhat.com> | |
27085 | ||
27086 | * expr.h (promoted_input_arg): Remove decl. | |
27087 | * function.c (promoted_input_arg): Merge into ... | |
27088 | * combine.c (setup_incoming_promotions): ... only caller. | |
27089 | Rearrange to avoid double loop. | |
27090 | ||
27091 | 2007-03-02 Ben Elliston <bje@au.ibm.com> | |
27092 | Peter Bergner <bergner@vnet.ibm.com> | |
27093 | Janis Johnson <janis187@us.ibm.com> | |
27094 | ||
27095 | * config/rs6000/dfp.md: New file. | |
27096 | * config/rs6000/rs6000.md: Include dfp.md. | |
27097 | (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands. | |
27098 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode | |
27099 | and TDmode decimal float modes in FP registers. | |
27100 | (num_insns_constant): Likewise. | |
27101 | (rs6000_legitimate_offset_address_p): Likewise. | |
27102 | (rs6000_legitimize_address): Likewise. | |
27103 | (rs6000_legitimize_reload_address): Likewise. | |
27104 | (rs6000_legitimate_address): Likewise. | |
27105 | (rs6000_emit_move): Likewise. | |
27106 | (function_arg_boundary): Likewise. | |
27107 | (function_arg_advance): Likewise. | |
27108 | (rs6000_darwin64_record_arg_recurse): Likewise. | |
27109 | (function_arg): Likewise. | |
27110 | (rs6000_gimplify_va_arg): Likewise. | |
27111 | (rs6000_split_multireg_move): Likewise. | |
27112 | (rs6000_output_function_epilogue): Likewise. | |
27113 | (rs6000_output_function_epilogue): Likewise. | |
27114 | (rs6000_register_move_cost): Likewise. | |
27115 | (rs6000_function_value): Likewise. | |
27116 | (rs6000_libcall_value): Likewise. | |
27117 | ||
27118 | 2007-03-02 Richard Sandiford <richard@codesourcery.com> | |
27119 | ||
27120 | * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks. | |
27121 | ||
27122 | 2007-03-02 Richard Sandiford <richard@codesourcery.com> | |
27123 | ||
27124 | * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc. | |
27125 | Use $MULTIDIR to choose between the kernel and RTP headers, | |
27126 | and use $WIND_BASE and $WIND_USR to locate them. | |
27127 | ||
27128 | 2007-03-02 Uros Bizjak <ubizjak@gmail.com> | |
27129 | ||
27130 | * config/i386/i386.c (override_options): Put initialization of | |
27131 | ix86_tune_mask and ix86_arch_mask to the correct place. | |
27132 | ||
27133 | 2007-03-02 Uros Bizjak <ubizjak@gmail.com> | |
27134 | Michael Meissner <michael.meissner@amd.com> | |
27135 | ||
27136 | PR target/31019 | |
27137 | * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask. | |
27138 | (ARCHMASK): Define. | |
27139 | (TARGET_CMOVE): Use ARCHMASK. | |
27140 | (TARGET_CMPXCHG): Ditto. | |
27141 | (TARGET_CMPXCHG8B): Ditto. | |
27142 | (TARGET_XADD): Ditto. | |
27143 | (TARGET_BSWAP): Ditto. | |
27144 | * config/i386/i386.c (ix86_tune_mask): New global variable. | |
27145 | (ix86_arch_mask): Ditto. | |
27146 | (override_options): Initialize ix86_tune_mask and | |
27147 | ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in | |
27148 | target_flags. | |
27149 | ||
27150 | 2007-03-02 Ben Elliston <bje@au.ibm.com> | |
27151 | ||
27152 | PR 30992 | |
27153 | * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.". | |
27154 | ||
27155 | 2007-03-02 Joseph Myers <joseph@codesourcery.com> | |
27156 | ||
27157 | * target.h (init_dwarf_reg_sizes_extra): New target hook. | |
27158 | * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default. | |
27159 | * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document. | |
27160 | * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this | |
27161 | hook. | |
27162 | * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA, | |
27163 | rs6000_init_dwarf_reg_sizes_extra): New. | |
27164 | * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support | |
27165 | SPE register high parts. | |
27166 | ||
27167 | 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com> | |
27168 | ||
27169 | * Makefile.in: Add install-pdf target as | |
27170 | copied from automake v1.10 rules. | |
27171 | * configure.ac: Add install-pdf to target list. | |
27172 | * configure: Regenerate. | |
27173 | ||
27174 | 2007-03-01 Paul Brook <paul@codesourcery.com> | |
27175 | ||
27176 | * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing | |
27177 | modes to LDRD for DImode. | |
27178 | (output_move_double): Fixup out of range ldrd/strd. | |
27179 | (vfp_secondary_reload_class): Rename... | |
27180 | (coproc_secondary_reload_class): ... to this. Add wb argument. | |
27181 | * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use | |
27182 | coproc_secondary_reload_class for CLASS_IWMMXT. | |
27183 | (SECONDARY_INPUT_RELOAD_CLASS): Ditto. | |
27184 | * arm-protos.h (coproc_secondary_reload_class): Update prototype. | |
27185 | ||
27186 | 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz> | |
27187 | ||
27188 | * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the | |
27189 | unroll factor by the estimated number of iterations. | |
27190 | (loop_prefetch_arrays): Do not prefetch in loops that iterate less | |
27191 | than prefetch latency. | |
27192 | ||
27193 | * config/i386/driver-i386.c (describe_cache, detect_caches_amd, | |
27194 | decode_caches_intel, detect_caches_intel): New functions. | |
27195 | (host_detect_local_cpu): Use detect_caches_amd and | |
27196 | detect_caches_intel. | |
27197 | ||
27198 | 2007-03-01 Richard Henderson <rth@redhat.com> | |
27199 | ||
27200 | * expr.c (emit_move_complex_push): Export. | |
27201 | (emit_move_complex_parts): Split out from ... | |
27202 | (emit_move_complex): ... here. | |
27203 | * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare. | |
27204 | * config/i386/i386.md (movcdi): New. | |
27205 | ||
27206 | 2007-03-01 Uros Bizjak <ubizjak@gmail.com> | |
27207 | ||
27208 | * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also | |
27209 | size of mode1 to check for tieable modes in MMX case. | |
27210 | ||
27211 | 2007-03-01 Richard Sandiford <richard@codesourcery.com> | |
27212 | ||
27213 | * Makefile.in (rtlanal.o): Depend on tree.h. | |
27214 | * rtl.h (offset_within_section_p, split_const): Declare. | |
27215 | * rtlanal.c: Include tree.h. | |
27216 | (offset_within_block_p): New function, taken from | |
27217 | mips_offset_within_object_p. | |
27218 | (split_const): New function, taken from mips_split_const. | |
27219 | * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p): | |
27220 | Declare. | |
27221 | * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define. | |
27222 | (CONSTANT_ADDRESS_P): Only accept legitimate constants. | |
27223 | (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p. | |
27224 | * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define. | |
27225 | (m68k_illegitimate_symbolic_constant_p): New function. | |
27226 | * config/m68k/m68k.md (movsi): Remove misleading predicates. | |
27227 | If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a | |
27228 | symbolic constant that might be outside the symbol's section, | |
27229 | move the symbol first and then add the offset. | |
27230 | * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): | |
27231 | Override. | |
27232 | * config/mips/mips.c (mips_split_const): Delete. | |
27233 | (mips_offset_within_object_p): Delete. | |
27234 | (mips_symbolic_constant_p): Use offset_within_section_p and | |
27235 | split_const instead of mips_offset_within_object_p and | |
27236 | mips_split_const. | |
27237 | (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address) | |
27238 | (mips_legitimize_const_move, print_operand_reloc) | |
27239 | (mips_dangerous_for_la25_p): Use split_const instead of | |
27240 | mips_split_const. | |
27241 | ||
27242 | 2007-02-28 Eric Christopher <echristo@apple.com> | |
27243 | ||
27244 | * Makefile.in (install-include-dir): Don't rm -rf include. | |
27245 | ||
27246 | 2007-02-28 Richard Guenther <rguenther@suse.de> | |
27247 | ||
27248 | PR middle-end/30364 | |
27249 | * fold-const.c (fold_binary): Do not associate expressions | |
27250 | with more than one variable for integer types that do not wrap. | |
27251 | ||
27252 | 2007-02-28 Sandra Loosemore <sandra@codesourcery.com> | |
27253 | ||
27254 | * builtins.c (fold_builtin_call_list, fold_builtin_call_valist): | |
27255 | Delete, and replace with... | |
27256 | (fold_builtin_call_array): This. Update callers to use it. | |
27257 | * fold-const.c (fold_build_call_list): Delete, and replace with... | |
27258 | (fold_build_call_array): This. | |
27259 | (fold_build_call_list_initializer): Delete, and replace with... | |
27260 | (fold_build_call_array_initializer): This. | |
27261 | * tree.h: Update declarations to reflect above changes. | |
27262 | ||
27263 | * c-typeck.c (build_function_call): Store converted arguments | |
27264 | in a stack-allocated array instead of building a list. | |
27265 | (convert_arguments): Store arguments in the array passed in as an | |
27266 | argument, and return the actual number of arguments. | |
27267 | * c-format.c: (check_function_format): Pass arguments in an | |
27268 | array instead of a list. | |
27269 | * c-common.c (check_function_nonnull): Likewise. | |
27270 | (check_function_sentinel): Likewise. | |
27271 | (check_function_arguments): Likewise. | |
27272 | * c-common.h: Update declarations to reflect above changes. | |
27273 | ||
27274 | 2007-02-28 Jan Hubicka <jh@suse.cz> | |
27275 | ||
27276 | * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN, | |
27277 | PRED_NEGATIVE_RETURN): Update outcomes. | |
27278 | ||
27279 | 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com> | |
27280 | ||
27281 | * calls.c (emit_library_call_value_1): Handle partial registers | |
27282 | correctly when building up CALL_INSN_FUNCTION_USAGE. | |
27283 | ||
27284 | 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
27285 | ||
27286 | * pa/predicates.md (move_src_operand): Allow zero for mode. | |
27287 | * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode | |
27288 | move pattern. | |
27289 | ||
27290 | 2007-02-27 Uros Bizjak <ubizjak@gmail.com> | |
27291 | ||
27292 | PR target/30970 | |
27293 | * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal, | |
27294 | *movv2df_internal): Enable pattern only for valid operand | |
27295 | combinations. | |
27296 | * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers, | |
27297 | tie only 128bit modes. For MMX registers, tie only 64bit modes. | |
27298 | ||
27299 | 2007-02-27 Mike Stump <mrs@apple.com> | |
27300 | ||
27301 | * config/darwin-crt3.c: Avoid compilation when compiling for a | |
27302 | kext multilib. | |
27303 | ||
27304 | 2007-02-27 Joseph Myers <joseph@codesourcery.com> | |
27305 | ||
27306 | * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define | |
27307 | FIXED_INCLUDE_DIR. | |
27308 | (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed | |
27309 | for fixed headers and limits.h. | |
27310 | (install-include-dir, install-headers-tar, install-headers-cpio, | |
27311 | install-headers-cp, real-install-headers-tar, | |
27312 | real-install-headers-cpio, real-install-headers-cp): Handle | |
27313 | include-fixed as well as include. | |
27314 | (install-mkheaders): Don't install files that go only in include | |
27315 | not include-fixed. | |
27316 | * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR | |
27317 | from GCC_INCLUDE_DIR. | |
27318 | * gcc.c (process_command): Remove special -BstageN/ handling. | |
27319 | (do_spec_1): Add include-fixed directories. | |
27320 | ||
27321 | 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com> | |
27322 | ||
27323 | * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and | |
27324 | _smulsi3_highpart. | |
27325 | * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart): | |
27326 | New functions. | |
27327 | * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New | |
27328 | patterns. | |
27329 | ||
27330 | 2007-02-27 Mark Mitchell <mark@codesourcery.com> | |
27331 | ||
27332 | * c-common.c (get_priority): Add check for | |
27333 | SUPPORTS_INIT_PRIORITY. | |
27334 | ||
27335 | 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com> | |
27336 | ||
27337 | * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode. | |
27338 | ||
27339 | * config/bfin/bfin.c: Include "cfglayout.h". | |
27340 | (MAX_LSETUP_DISTANCE): New macro. | |
27341 | (struct loop_info): New members incoming, incoming_src and | |
27342 | incoming_dest. Delete member predecessor. | |
27343 | (length_for_loop): New function. | |
27344 | (bfin_optimize_loop): Handle more different loop structures. | |
27345 | (bfin_discover_loop): Rework detection of predecessor blocks by | |
27346 | examining incoming edges. | |
27347 | (bfin_discover_loops, bfin_free_loops): New functions, broken out of | |
27348 | bfin_reorg_loops. | |
27349 | (bfin_reorder_loops): New function. | |
27350 | (bfin_reorg_loops): Use these three new functions. | |
27351 | ||
27352 | * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES, | |
27353 | REG_CLASS_CONTENTS): Add D0REGS through D7REGS. | |
27354 | (CONSTRAINT_LEN): Add entry for 'q'. | |
27355 | (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER. | |
27356 | Add 'q' constraints. | |
27357 | (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass. | |
27358 | (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2. | |
27359 | ||
27360 | * config/bfin/bfin.md (add_with_carry): New pattern. | |
27361 | (s_or_u, su_optab, su_modifier): New code macros/attrs. | |
27362 | (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl, | |
27363 | <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to | |
27364 | support unsigned multiplies too. Removed incorrect commutativity from | |
27365 | operand 1 constraint where appropriate. | |
27366 | (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New | |
27367 | patterns. | |
27368 | (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh, | |
27369 | <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh): | |
27370 | New patterns. | |
27371 | (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul, | |
27372 | usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul, | |
27373 | usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul, | |
27374 | usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul, | |
27375 | usmulhisi_hh_huh): New patterns. | |
27376 | ||
27377 | * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, | |
27378 | lshifthi3): Fix output template to use half reg for operand 2. | |
27379 | ||
27380 | * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg | |
27381 | instead of R2. | |
27382 | ||
27383 | * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns. | |
27384 | ||
27385 | 2007-02-27 Andreas Schwab <schwab@suse.de> | |
27386 | ||
27387 | * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi. | |
27388 | ||
27389 | 2007-02-27 Jan Hubicka <jh@suse.cz> | |
27390 | ||
27391 | * predict.c (last_basic_block_p): Remove. | |
27392 | (tree_estimate_probability): Update return heuristic for commonized | |
27393 | return blocks. | |
27394 | ||
27395 | 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com> | |
27396 | ||
27397 | * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency. | |
27398 | ||
27399 | 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com> | |
27400 | ||
27401 | * doc/include/gcc-common.texi (versionsubtitle): New macro. | |
27402 | * doc/cpp.texi: Standardize title page. | |
27403 | * doc/cppinternals.texi: Likewise. | |
27404 | * doc/gcc.texi: Standardize title page, remove version number | |
27405 | from copyright page. | |
27406 | * doc/gccint.texi: Likewise. | |
27407 | * doc/install.texi: Standardize title page, add table of | |
27408 | contents. | |
27409 | ||
27410 | 2007-02-26 Jan Hubicka <jh@suse.cz> | |
27411 | ||
27412 | * predict.def: Set outcomes according to more recent results. | |
27413 | (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER): | |
27414 | Remove dead predictors. | |
27415 | * predict.c (return_prediction): Fix pasto. | |
27416 | ||
27417 | 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com> | |
27418 | ||
27419 | * loop-iv.c (simplify_using_initial_values): Fix oversight in previous | |
27420 | change; avoid a memory leak when returning early. | |
27421 | ||
27422 | 2007-02-26 Mark Mitchell <mark@codesourcery.com> | |
27423 | ||
27424 | * c-decl.c (static_ctors): Move to c-common.c. | |
27425 | (static_dtors): Likewise. | |
27426 | (finish_function): Use c_record_cdtor_fn. | |
27427 | (build_cdtor): Move to c-common.c. | |
27428 | (c_write_global_declarations): Use c_build_cdtor_fns. | |
27429 | * c-common.h (static_ctors): Declare. | |
27430 | (static_dtors): Likewise. | |
27431 | (c_record_cdtor_fn): Likewise. | |
27432 | (c_build_cdtor_fns): Likewise. | |
27433 | * c-common.c (static_ctors): New variable. | |
27434 | (static_dtors): Likewise. | |
27435 | (c_record_cdtor_fn): New function. | |
27436 | (build_cdtor): Move from c-decl.c | |
27437 | (c_build_cdtor_fns): New function. | |
27438 | ||
27439 | * output.h (assemble_addr_to_section): Declare. | |
27440 | (get_cdtor_priority_section): Likewise. | |
27441 | * varasm.c (assemble_addr_to_section): New function. | |
27442 | (get_cdtor_priority_section): Likewise. | |
27443 | (default_named_section_asm_out_destructor): Use them. | |
27444 | (destor_dtor_section_asm_out_destructor): Likewise. | |
27445 | (default_named_section_asm_out_constructor): Likewise. | |
27446 | (default_ctor_section_asm_out_constructor): Likewise. | |
27447 | * config.gcc (*-*-vxworks*): Include vxworks.o. | |
27448 | * config/t-vxworks (vxworks.o): New target. | |
27449 | * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove. | |
27450 | (TARGET_ASM_CONSTRUCTOR): Define. | |
27451 | (TARGET_ASM_DESTRUCTOR): Likewise. | |
27452 | (vxworks_asm_out_constructor): Declare. | |
27453 | (vxworks_asm_out_destructor): Likewise. | |
27454 | ||
27455 | * c-common.c (get_priority): Check that we have not just an | |
27456 | INTEGER_CST, but an integer constant with integeral type. | |
27457 | ||
27458 | 2007-02-25 Uros Bizjak <ubizjak@gmail.com> | |
27459 | ||
27460 | PR tree-optimization/30938 | |
27461 | * tree-vect-transform.c (vectorizable_call): Fix off-by-one error: | |
27462 | use &dt[nargs-1] instead of &dt[nargs] in the call to | |
27463 | vect_is_simple_use(). | |
27464 | ||
27465 | 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com> | |
27466 | ||
27467 | * reload.c (find_reloads_address_1): Handle PLUS expressions resulting | |
27468 | from register elimination as PRE_MODIFY / POST_MODIFY increments. | |
27469 | Do not attempt to handle MEM inside auto-inc expressions. | |
27470 | * reload1.c (eliminate_regs_1): Do not attempt to handle elimination | |
27471 | of a register modified by an auto-inc expression. However, do handle | |
27472 | elimination of a register used as PRE_MODIFY / POST_MODIFY increment. | |
27473 | (elimination_effects): Prohibit elimination of a register modified | |
27474 | by an auto-inc expression. Disable register elimination rules whose | |
27475 | target register is modified by an auto-inc expression with variable | |
27476 | increment. | |
27477 | ||
27478 | 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz> | |
27479 | ||
27480 | * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix | |
27481 | off-by-one error. | |
27482 | (array_at_struct_end_p): New function. | |
27483 | (idx_infer_loop_bounds): Use it. | |
27484 | (estimate_numbers_of_iterations_loop): Export. | |
27485 | * predict.c (predict_loops): Use estimated_loop_iterations_int. | |
27486 | Do not use PRED_LOOP_EXIT on exits predicted by # of iterations. | |
27487 | (tree_estimate_probability): Call record_loop_exits. | |
27488 | * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ... | |
27489 | (estimated_loop_iterations, estimated_loop_iterations_int, | |
27490 | estimated_loop_iterations_tree): New functions. | |
27491 | (analyze_siv_subscript_cst_affine, | |
27492 | compute_overlap_steps_for_affine_1_2, | |
27493 | analyze_subscript_affine_affine): Use estimated_loop_iterations_int. | |
27494 | (analyze_miv_subscript): Use estimated_loop_iterations_tree. | |
27495 | * predict.def (PRED_LOOP_ITERATIONS): Update comment. | |
27496 | (PRED_LOOP_ITERATIONS_GUESSED): New. | |
27497 | * cfgloop.c (record_loop_exits): Do nothing if there are no loops. | |
27498 | * cfgloop.h (estimate_numbers_of_iterations_loop, | |
27499 | estimated_loop_iterations_int): Declare. | |
27500 | ||
27501 | 2007-02-25 Mark Mitchell <mark@codesourcery.com> | |
27502 | ||
27503 | * doc/extend.texi: Document optional priority argument to | |
27504 | constructors and destructors. | |
27505 | * tree.c (init_priority_for_decl): Adjust GTY markers. | |
27506 | (init_ttree): Use priority-info hash functions for | |
27507 | init_priority_for_decl. | |
27508 | (tree_map_eq): Rename to ... | |
27509 | (tree_map_base_eq): ... this. | |
27510 | (tree_map_marked_p): Rename to ... | |
27511 | (tree_map_base_marked_p): ... this. | |
27512 | (tree_map_base_hash): New function. | |
27513 | (decl_init_priority_lookup): Rework. | |
27514 | (decl_fini_priority_lookup): New function. | |
27515 | (decl_priority_info): New function. | |
27516 | (decl_init_priority_insert): Use it. | |
27517 | (decl_fini_priority_insert): Likewise. | |
27518 | (decl_restrict_base_lookup): Adjust for refactoring of tree_map | |
27519 | hierarchy. | |
27520 | (decl_restrict_base_insert): Likewise. | |
27521 | (decl_debug_expr_insert): Likewise. | |
27522 | (decl_value_expr_lookup): Likewise. | |
27523 | (decl_value_expr_insert): Likewise. | |
27524 | * tree.h (priority_type): New type. | |
27525 | (decl_init_priority_lookup): Use priority_type. | |
27526 | (decl_fini_priority_lookup): New function. | |
27527 | (decl_init_priority_insert): Use priority_type. | |
27528 | (decl_fini_priority_insert): New function. | |
27529 | (DECL_HAS_INIT_PRIORITY): Tweak comments. | |
27530 | (DECL_INIT_PRIORITY): Likewise. | |
27531 | (SET_DECL_INIT_PRIORITY): Add comment. | |
27532 | (DECL_FINI_PRIORITY): New macro. | |
27533 | (SET_DECL_FINI_PRIORITY): Likewise. | |
27534 | (DEFAULT_INIT_PRIORITY): Document. | |
27535 | (MAX_INIT_PRIORITY): Likewise. | |
27536 | (MAX_RESERVED_INIT_PRIORITY): Likewise. | |
27537 | (tree_map_base): New type. | |
27538 | (tree_map_base_eq): New function. | |
27539 | (tree_map_base_hash): Likewise. | |
27540 | (tree_map_base_marked_p): Likewise. | |
27541 | (tree_map): Inherit from tree_map_base. | |
27542 | (tree_map_eq): Make it a macro. | |
27543 | (tree_map_marked_p): Likewise. | |
27544 | (tree_int_map): Inherit from tree_map_base. | |
27545 | (tree_int_map_eq): Make it a macro. | |
27546 | (tree_int_map_hash): Likewise. | |
27547 | (tree_int_map_marked_p): Likewise. | |
27548 | (tree_priority_map): New type. | |
27549 | (tree_priority_map_eq): New macro. | |
27550 | (tree_priority_map_hash): Likewise. | |
27551 | (tree_priority_map_marked_p): Likewise. | |
27552 | * varasm.c (emults_decl): Adjust for refactoring of tree_map | |
27553 | hierarchy. | |
27554 | (emutls_common_1): Likewise. | |
27555 | * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise. | |
27556 | * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring | |
27557 | of tree_map hierarchy. | |
27558 | * tree-cfg.c (move_stmt_r): Likewise. | |
27559 | (new_label_mapper): Likewise. | |
27560 | * c-tree.h (c_expand_body): Move to ... | |
27561 | * c-common.h (c_expand_body): ... here. | |
27562 | * c-decl.c (c_expand_body): Move to ... | |
27563 | * c-common.c (c_expand_body): ... here. | |
27564 | (c_common_attribute_table): Allow 1 argument for the constructor | |
27565 | and destructor attributes. | |
27566 | (get_priority): New function. | |
27567 | (handle_constructor_attribute): Set DECL_INIT_PRIORITY. | |
27568 | (handle_destructor_attribute): Set DECL_FINI_PRIORITY. | |
27569 | ||
27570 | 2007-02-24 Jan Hubicka <jh@suse.cz> | |
27571 | ||
27572 | PR middle-end/30509 | |
27573 | * tree-inline.c (copy_bb): Produce exact copy of EH info when | |
27574 | copying for inlining. | |
27575 | ||
27576 | 2007-02-24 Uros Bizjak <ubizjak@gmail.com> | |
27577 | Jan Hubicka <jh@suse.cz> | |
27578 | ||
27579 | PR target/30778 | |
27580 | * cofnig/i386/i386.c (counter_mode): New function. | |
27581 | (expand_set_or_movmem_via_loop): Use it. | |
27582 | (expand_movmem_epilogue): Likewise; fix pasto. | |
27583 | (ix86_expand_movmem): Do emit guard even for constant counts. | |
27584 | (ix86_expand_setmem): Likewise. | |
27585 | ||
27586 | 2007-02-25 Nick Clifton <nickc@redhat.com> | |
27587 | ||
27588 | * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete. | |
27589 | (JUMP_TABLES_IN_TEXT_SECTION): Define. | |
27590 | ||
27591 | 2007-02-24 Uros Bizjak <ubizjak@gmail.com> | |
27592 | ||
27593 | PR target/30770 | |
27594 | * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask | |
27595 | count argument with 0x10, not with 0x16. | |
27596 | (expand_setmem_epilogue): Ditto. | |
27597 | ||
27598 | 2007-02-24 Mike Stump <mrs@apple.com> | |
27599 | ||
27600 | * config/i386/i386.c (output_pic_addr_const): Stubify optimized | |
27601 | symbols. | |
27602 | ||
27603 | 2007-02-24 Richard Guenther <rguenther@suse.de> | |
27604 | ||
27605 | PR middle-end/30951 | |
27606 | * fold-const.c (fold_binary): Fold x +- CST op x for | |
27607 | EQ_EXPR and NE_EXPR. | |
27608 | ||
27609 | 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
27610 | ||
27611 | * pa.md (muldi3): Force subregs to registers in 64-bit expander. | |
27612 | ||
27613 | 2007-02-24 Jan Hubicka <jh@suse.cz> | |
27614 | ||
27615 | * cgraphunit.c (decide_is_function_needed): Honor | |
27616 | -fkeep-inline-functions. | |
27617 | ||
27618 | 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27619 | ||
27620 | * builtins.c (fold_builtin_modf): New. | |
27621 | (fold_builtin_2): Use it. | |
27622 | ||
27623 | 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com> | |
27624 | ||
27625 | * loop-iv.c (implies_p): Detect additional cases where A implies B. | |
27626 | (determine_max_iter): Take additional LOOP arg; all callers changed. | |
27627 | Lose broken logic dealing with PLUS. Try to limit the upper bound by | |
27628 | one using simplifications. | |
27629 | (simplify_using_initial_values): Return if the expression becomes | |
27630 | invalid due to altered regs. | |
27631 | ||
27632 | 2007-02-23 DJ Delorie <dj@redhat.com> | |
27633 | ||
27634 | * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro. | |
27635 | ||
27636 | 2007-02-23 Mike Stump <mrs@apple.com> | |
27637 | ||
27638 | * tlink.c (scan_linker_output): Parse linker messages from | |
27639 | darwin9's linker better. | |
27640 | ||
27641 | 2007-02-23 Steve Ellcey <sje@cup.hp.com> | |
27642 | ||
27643 | PR debug/29614 | |
27644 | * varpool.c (varpool_assemble_pending_decls): Set | |
27645 | varpool_last_needed_node to null. | |
27646 | ||
27647 | 2007-02-23 DJ Delorie <dj@redhat.com> | |
27648 | ||
27649 | * config/i386/i386.c (ix86_data_alignment): Don't specify an | |
27650 | alignment bigger than the object file can handle. | |
27651 | ||
27652 | 2007-02-23 Uros Bizjak <ubizjak@gmail.com> | |
27653 | ||
27654 | PR target/30825 | |
27655 | * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32, | |
27656 | zero_extendsidi2_rex64): Penalize MMX register<->memory moves. | |
27657 | (*movsf_1): Penalize MMX moves. | |
27658 | ||
27659 | 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com> | |
27660 | ||
27661 | * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate | |
27662 | 2^32-1 or more times unless flag_unsafe_loop_optimizations. | |
27663 | ||
27664 | * loop-iv.c (determine_max_iter): Moved in front of its sole user. | |
27665 | ||
27666 | 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27667 | ||
27668 | * builtins.c (fold_builtin_logb, fold_builtin_significand): New. | |
27669 | (fold_builtin_1): Use them. | |
27670 | * fold-const.c (tree_expr_nonnegative_warnv_p): Handle | |
27671 | BUILT_IN_SIGNIFICAND. | |
27672 | ||
27673 | 2007-02-23 H.J. Lu <hongjiu.lu@intel.com> | |
27674 | ||
27675 | * config/i386/i386.c (bdesc_1arg): Initialize | |
27676 | IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with | |
27677 | "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup". | |
27678 | (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP | |
27679 | and IX86_BUILTIN_MOVSLDUP. | |
27680 | ||
27681 | 2007-02-22 Paolo Bonzini <bonzini@gnu.org> | |
27682 | ||
27683 | PR rtl-optimization/30841 | |
27684 | * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address. | |
27685 | ||
27686 | 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27687 | ||
27688 | * builtins.c (fold_builtin_frexp): New. | |
27689 | (fold_builtin_2): Use it. | |
27690 | ||
27691 | 2007-02-22 Mark Mitchell <mark@codesourcery.com> | |
27692 | ||
27693 | * doc/invoke.texi (Spec Files): Document getenv spec function. | |
27694 | ||
27695 | * gcc.c (getenv_spec_function): New function. | |
27696 | (static_spec_functions): Add it. | |
27697 | * config/vxworks.h (VXWORKS_TARGET_DIR): Remove. | |
27698 | (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks | |
27699 | header files. | |
27700 | ||
27701 | 2007-02-22 Michael Matz <matz@suse.de | |
27702 | ||
27703 | PR c++/29433 | |
27704 | * dwarf2out.c (add_AT_string): Call ggc_strdup once per string. | |
27705 | (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME. | |
27706 | ||
27707 | 2007-02-22 Ian Lance Taylor <iant@google.com> | |
27708 | ||
27709 | PR debug/30898 | |
27710 | * dwarf2out.c (concatn_mem_loc_descriptor): New static function. | |
27711 | (mem_loc_descriptor): Call it. | |
27712 | ||
27713 | 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz> | |
27714 | Ira Rosen <irar@il.ibm.com> | |
27715 | ||
27716 | * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account. | |
27717 | ||
27718 | 2007-02-22 Ira Rosen <irar@il.ibm.com> | |
27719 | ||
27720 | PR tree-optimization/30843 | |
27721 | * tree-vect-transform.c (vect_transform_loop): Remove strided scalar | |
27722 | stores only after all the group is vectorized. | |
27723 | ||
27724 | 2007-02-22 Dorit Nuzman <dorit@il.ibm.com> | |
27725 | ||
27726 | PR tree-optimization/30858 | |
27727 | * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts | |
27728 | in the reduction cycle have a single use in the loop. | |
27729 | * tree-vectorizer.h (relevant): Add documentation. | |
27730 | ||
27731 | 2007-02-20 Mike Stump <mrs@apple.com> | |
27732 | ||
27733 | * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>. | |
27734 | * configure: Regenerate. | |
27735 | ||
27736 | 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com> | |
27737 | ||
27738 | Change the defaults of some parameters and options. | |
27739 | * config/spu/spu-protos.h (spu_optimization_options): Declare. | |
27740 | * config/spu/spu.c (spu_optimization_options): Add. | |
27741 | (spu_override_options): Change params in spu_optimization_options. | |
27742 | * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define. | |
27743 | ||
27744 | Register 127 is only 16 byte aligned when used as a frame pointer. | |
27745 | * config/spu/spu-protos.h (spu_init_expanders): Declare. | |
27746 | * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for | |
27747 | HARD_FRAME_POINTER_REGNUM. | |
27748 | (spu_legitimate_address): Use regno_aligned_for_reload. | |
27749 | (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte | |
27750 | aligned when frame_pointer_needed is true. | |
27751 | (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM | |
27752 | to 8 bits. | |
27753 | * config/spu/spu.h (INIT_EXPANDERS): Define. | |
27754 | ||
27755 | Make sure shift and rotate instructions have valid immediate operands. | |
27756 | * config/spu/predicates.md (spu_shift_operand): Remove. | |
27757 | * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers. | |
27758 | * config/spu/constraints.md (W, O): Extend range. | |
27759 | * config/spu/spu.md (umask, nmask): Define. | |
27760 | (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti, | |
27761 | lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>, | |
27762 | rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>, | |
27763 | rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use | |
27764 | spu_nonmem_operand instead of spu_shift_operands. Use new modifiers. | |
27765 | (lshr<mode>3_reg): Fix rtl description. | |
27766 | ||
27767 | Make sure mulhisi immediate operands are valid. | |
27768 | * config/spu/predicates.md (imm_K_operand): Add. | |
27769 | * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand. | |
27770 | ||
27771 | Generate constants using fsmbi and andi. | |
27772 | * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2. | |
27773 | (print_operand, spu_split_immediate, classify_immediate, | |
27774 | fsmbi_const_p): Handle IC_FSMBI2. | |
27775 | ||
27776 | Correctly handle a CONST_VECTOR containing symbols. | |
27777 | * config/spu/spu.c (print_operand): Handle HIGH correctly. | |
27778 | (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem. | |
27779 | (immediate_load_p): Allow symbols that use 2 instructions to create. | |
27780 | (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR | |
27781 | with symbols when flag_pic is set. | |
27782 | (const_vector_immediate_p): New. | |
27783 | (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't | |
27784 | accept a CONST_VECTOR with symbols. | |
27785 | (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't | |
27786 | accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH | |
27787 | correctly. | |
27788 | * config/spu/spu.md (high, low): Delete. | |
27789 | (low_<mode>): Define. | |
27790 | ||
27791 | Remove INTRmode and INTR_REGNUM, which didn't work. | |
27792 | * config/spu/spu.c (spu_conditional_register_usage): Remove reference | |
27793 | of INTR_REGNUM. | |
27794 | * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr, | |
27795 | set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed | |
27796 | peephole2 pattern): Don't use INTR or 131. | |
27797 | (movintrcc): Delete. | |
27798 | * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, | |
27799 | CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM. | |
27800 | * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove. | |
27801 | (UNSPEC_SET_INTR): Add. | |
27802 | * config/spu/spu-modes.def (INTR): Remove. | |
27803 | ||
27804 | More accurate warnings about run-time relocations. | |
27805 | * config/spu/spu.c (reloc_diagnostic): Test in_section. | |
27806 | ||
27807 | Correctly warn about immediate arguments to specific intrinsics. | |
27808 | * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs. | |
27809 | (spu_expand_builtin_1): Call spu_check_builtin_parm before checking | |
27810 | the instruction predicate. | |
27811 | ||
27812 | Fix tree check errors with latest update. | |
27813 | * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use | |
27814 | CALL_EXPR_ARG. | |
27815 | (spu_expand_builtin): Use CALL_EXPR_FN. | |
27816 | ||
27817 | Add missing specific intrinsics. | |
27818 | * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and | |
27819 | si_bislede. | |
27820 | * config/spu/spu_internals.h: Ditto. | |
27821 | ||
27822 | Fix incorrect operand modifiers. | |
27823 | * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H. | |
27824 | * config/spu/spu.md (xor<mode>3): Change %S to %J. | |
27825 | ||
27826 | Optimize one case of zero_extend of a vec_select. | |
27827 | * config/spu/spu.md (_vec_extractv8hi_ze): Add. | |
27828 | ||
27829 | Accept any immediate for hbr. | |
27830 | * config/spu/spu.md (hbr): Change s constraints to i. | |
27831 | ||
27832 | 2007-02-21 Paul Brook <paul@codesourcery.com> | |
27833 | ||
27834 | * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt | |
27835 | condexec_count when skipping USE and CLOBBER. | |
27836 | ||
27837 | 2007-02-21 Nick Clifton <nickc@redhat.com> | |
27838 | ||
27839 | * common.opt (Warray-bounds): Add Warning attribute. | |
27840 | (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch): | |
27841 | Likewise. | |
27842 | (fsized-zeroes): Add Optimization attribute. | |
27843 | (fsplit-wide-types, ftree-scev-cprop): Likewise. | |
27844 | * c.opt (Wc++0x-compat): Add Warning attribute. | |
27845 | ||
27846 | 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com> | |
27847 | ||
27848 | PR middle-end/30761 | |
27849 | * reload1.c (eliminate_regs_in_insn): In the single_set special | |
27850 | case, attempt to re-recognize the insn before falling back to | |
27851 | having reload fix it up. | |
27852 | ||
27853 | 2007-02-20 Eric Christopher <echristo@gmail.com> | |
27854 | ||
27855 | * config/frv/frv.c (frv_read_argument): Take a tree and int argument. | |
27856 | Rewrite accordingly. | |
27857 | (frv_read_iacc_argument): Ditto. | |
27858 | (frv_expand_set_builtin): Take a call instead of arglist, update for | |
27859 | above changes. | |
27860 | (frv_expand_unop_builtin): Ditto. | |
27861 | (frv_expand_binop_builtin): Ditto. | |
27862 | (frv_expand_cut_builtin): Ditto. | |
27863 | (frv_expand_binopimm_builtin): Ditto. | |
27864 | (frv_expand_voidbinop_builtin): Ditto. | |
27865 | (frv_expand_int_void2arg): Ditto. | |
27866 | (frv_expand_prefetches): Ditto. | |
27867 | (frv_expand_voidtriop_builtin): Ditto. | |
27868 | (frv_expand_voidaccop_builtin): Ditto. | |
27869 | (frv_expand_load_builtin): Ditto. | |
27870 | (frv_expand_store_builtin): Ditto. | |
27871 | (frv_expand_mdpackh_builtin): Ditto. | |
27872 | (frv_expand_mclracc_builtin): Ditto. | |
27873 | (frv_expand_mrdacc_builtin): Ditto. | |
27874 | (frv_expand_mwtacc_builtin): Ditto. | |
27875 | (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update | |
27876 | calls for above. | |
27877 | ||
27878 | 2007-02-20 Janis Johnson <janis187@us.ibm.com> | |
27879 | ||
27880 | * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp. | |
27881 | * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the | |
27882 | cmpb instruction. | |
27883 | (HAVE_GAS_DFP): Check for assembler support of decimal floating | |
27884 | point instructions. | |
27885 | * configure: Regenerate. | |
27886 | * config.in: Regenerate. | |
27887 | * config/rs6000/rs6000.opt (mcmpb, mdfp): New. | |
27888 | * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP | |
27889 | masks to power6 and power6x and to POWERPC_MASKS. | |
27890 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define | |
27891 | _ARCH_PWR6. | |
27892 | * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP. | |
27893 | * config/rs6000/sysv4.opt (mprototype): Use variable, not mask. | |
27894 | * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): | |
27895 | Access PROTOTYPE as variable, not mask. | |
27896 | ||
27897 | 2007-02-20 Steven Bosscher <steven@gcc.gnu.org> | |
27898 | ||
27899 | * rtl.h (remove_reg_equal_equiv_notes): New prototype. | |
27900 | * rtlanal.c (remove_reg_equal_equiv_notes): New function. | |
27901 | * combine.c (adjust_for_new_dest): Use it. | |
27902 | * postreload.c (reload_combine): Likewise. | |
27903 | ||
27904 | 2007-02-20 Steven Bosscher <steven@gcc.gnu.org> | |
27905 | ||
27906 | * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ* | |
27907 | notes on an insn with multiple sets, even if single_set returns | |
27908 | non-NULL for that insn. | |
27909 | ||
27910 | 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27911 | ||
27912 | * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, | |
27913 | scalbn and scalbln. | |
27914 | ||
27915 | 2007-02-20 Geoffrey Keating <geoffk@apple.com> | |
27916 | ||
27917 | * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only | |
27918 | if user didn't pass it. | |
27919 | * config/i386/darwin.h (CC1_SPEC): Likewise. | |
27920 | * config/rs6000/darwin.h (CC1_SPEC): Likewise. | |
27921 | (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of | |
27922 | -mmacosx-version-min. | |
27923 | ||
27924 | 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
27925 | Uros Bizjak <ubizjak@gmail.com> | |
27926 | ||
27927 | * optabs.h (enum optab_index): Add new OTI_scalb. | |
27928 | (scalb_optab): Define corresponding macro. | |
27929 | * optabs.c (init_optabs): Initialize scalb_optab. | |
27930 | * genopinit.c (optabs): Implement scalb_optab using scalb?f3 | |
27931 | patterns. | |
27932 | * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle | |
27933 | BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}. | |
27934 | (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} | |
27935 | and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if | |
27936 | flag_unsafe_math_optimizations is set. | |
27937 | ||
27938 | * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders | |
27939 | to implement scalbf, scalb and scalbl built-ins as inline x87 | |
27940 | intrinsics. | |
27941 | ||
27942 | 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
27943 | DJ Delorie <dj@redhat.com> | |
27944 | ||
27945 | PR other/30824 | |
27946 | * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to... | |
27947 | (diagnostic_report_diagnostic): ... here, and turn them into real | |
27948 | errors. If warnings are inhibited, no need to do anything. | |
27949 | ||
27950 | 2007-02-20 Uros Bizjak <ubizjak@gmail.com> | |
27951 | ||
27952 | * config/i386/i386.md (expm1xf2): Reorder insn sequence for | |
27953 | better code generation. | |
27954 | ||
27955 | 2007-02-20 Ben Elliston <bje@au.ibm.com> | |
27956 | ||
27957 | * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;. | |
27958 | ||
27959 | 2007-02-20 Kazu Hirata <kazu@codesourcery.com> | |
27960 | ||
27961 | * config/alpha/alpha.c, config/alpha/alpha.md, | |
27962 | config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c, | |
27963 | config/alpha/vms-psxcrt0-64.c, config/arc/arc.c, | |
27964 | config/arc/arc.h, config/arm/arm.c, config/arm/arm.md, | |
27965 | config/arm/lib1funcs.asm: Follow spelling conventions. | |
27966 | ||
27967 | * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c, | |
27968 | config/fr30/fr30.md, config/i386/i386.h, | |
27969 | config/iq2000/iq2000.h, config/iq2000/predicates.md, | |
27970 | config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h, | |
27971 | config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h, | |
27972 | config/pdp11/pdp11.c, config/pdp11/pdp11.h, | |
27973 | config/rs6000/altivec.md, config/rs6000/rs6000.c, | |
27974 | config/s390/s390-modes.def, config/sparc/netbsd-elf.h, | |
27975 | config/sparc/sparc.c, config/sparc/sparc.h, | |
27976 | config/sparc/sparc.md, config/spu/constraints.md, | |
27977 | config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling | |
27978 | conventions. | |
27979 | ||
27980 | 2007-02-20 Alan Modra <amodra@bigpond.net.au> | |
27981 | ||
27982 | PR target/29943 | |
27983 | * varasm.c (use_blocks_for_decl_p): Return false for decls with | |
27984 | alias attribute. | |
27985 | ||
27986 | 2007-02-19 Kazu Hirata <kazu@codesourcery.com> | |
27987 | ||
27988 | * doc/invoke.texi (-ftree-lrs): Remove. | |
27989 | ||
27990 | 2007-02-19 Diego Novillo <dnovillo@redhat.com> | |
27991 | ||
27992 | * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to | |
27993 | NULL. | |
27994 | ||
27995 | 2007-02-19 Lee Millward <lee.millward@codesourcery.com> | |
27996 | ||
27997 | * config/ia64/ia64.c (ia64_expand_builtin): Use the | |
27998 | new CALL_EXPR_FN macro for retrieving the function | |
27999 | declaration of the input expression. | |
28000 | ||
28001 | 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
28002 | ||
28003 | * c.opt (Waddress): New. | |
28004 | * common.opt (Walways-true): Delete. | |
28005 | (Wstring-literal-comparison): Delete. | |
28006 | * doc/invoke.texi (Warning Options): Delete -Walways-true and | |
28007 | -Wstring-literal-comparison. Add -Waddress. | |
28008 | (Waddress): New. | |
28009 | (Walways-true): Delete. | |
28010 | (Wstring-literal-comparison): Delete. | |
28011 | * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat | |
28012 | consistently instead of -Walways-true in example. | |
28013 | * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall. | |
28014 | * c-typeck.c (parser_build_binary_op): Replace | |
28015 | -Wstring-literal-comparison and -Walways-true with -Waddress. | |
28016 | * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true | |
28017 | with -Waddress. | |
28018 | ||
28019 | 2007-02-19 Eric Botcazou <ebotcazou@adacore.com> | |
28020 | ||
28021 | * tree-cfg.c (dump_function_to_file): Be prepared for functions | |
28022 | without DECL_STRUCT_FUNCTION initialized. | |
28023 | ||
28024 | 2007-02-19 Eric Botcazou <ebotcazou@adacore.com> | |
28025 | ||
28026 | * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap | |
28027 | due to calls to functions taking pointers as parameters. | |
28028 | ||
28029 | 2007-02-19 Richard Henderson <rth@redhat.com> | |
28030 | ||
28031 | PR debug/29558 | |
28032 | * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P | |
28033 | in memory. | |
28034 | ||
28035 | 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com> | |
28036 | ||
28037 | * config/s390/s390.c (s390_call_saved_register_used, | |
28038 | s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are | |
28039 | accessed to the new scheme. | |
28040 | ||
28041 | 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de> | |
28042 | ||
28043 | * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p) | |
28044 | (cris_print_index, cris_print_operand, cris_print_operand_address) | |
28045 | (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost) | |
28046 | (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx) | |
28047 | (cris_expand_pic_call_address): Use xxx_P predicate macros instead of | |
28048 | GET_CODE () == xxx. | |
28049 | * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q, | |
28050 | EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P, | |
28051 | GO_IF_LEGITIMATE_ADDRESS): Ditto. | |
28052 | * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>) | |
28053 | (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem) | |
28054 | (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi) | |
28055 | (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3) | |
28056 | (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side) | |
28057 | (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3) | |
28058 | (uminsi3, call, call_value): Ditto. | |
28059 | (define_split: indir_to_reg_split, unnamed): Ditto. | |
28060 | ||
28061 | 2007-02-19 Dorit Nuzman <dorit@il.ibm.com> | |
28062 | ||
28063 | PR tree-optimization/30975 | |
28064 | * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove | |
28065 | wrong assert. | |
28066 | ||
28067 | 2007-02-18 Eric Christopher <echristo@gmail.com> | |
28068 | ||
28069 | * mips.c (mips_prepare_builtin_arg): Add argnum parameter. | |
28070 | Remove use of arglist. | |
28071 | (mips_expand_builtin): Remove use of arglist, pass in expr. | |
28072 | (mips_expand_builtin_direct): Rewrite handling for arglist removal. | |
28073 | (mips_expand_builtin_movtf): Ditto. | |
28074 | (mips_expand_builtin_compare): Ditto. | |
28075 | ||
28076 | 2007-02-19 Alexandre Oliva <aoliva@redhat.com> | |
28077 | ||
28078 | * tree-sra.c (sra_build_assignment): Replace assertion | |
28079 | checking with a comment explaining why it can't be done. | |
28080 | ||
28081 | 2007-02-18 Sandra Loosemore <sandra@codesourcery.com> | |
28082 | ||
28083 | PR middle-end/30833 | |
28084 | * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed | |
28085 | during CALL_EXPR representation conversion. | |
28086 | * tree-ssa-propagate.c (set_rhs): Likewise. | |
28087 | ||
28088 | 2007-02-19 Alexandre Oliva <aoliva@redhat.com> | |
28089 | ||
28090 | * tree-sra.c (sra_build_assignment): Disable assertion checking | |
28091 | for now. | |
28092 | ||
28093 | 2007-02-18 Roger Sayle <roger@eyesopen.com> | |
28094 | ||
28095 | * function.c (gimplify_parameters): Call build_gimple_modify_stmt | |
28096 | instead of calling build2 with a GIMPLE_MODIFY_STMT. | |
28097 | * gimple-low.c (lower_function_body, lower_builtin_setjmp): | |
28098 | Likewise. | |
28099 | * gimplify.c (build_stack_save_restore, gimplify_return_expr, | |
28100 | gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr, | |
28101 | gimplify_init_ctor_eval_range, gimple_push_cleanup, | |
28102 | gimplify_omp_for, gimplify_omp_atomic_pipeline, | |
28103 | gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos, | |
28104 | force_gimple_operand): Likewise. | |
28105 | * ipa-cp.c (constant_val_insert): Likewise. | |
28106 | * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, | |
28107 | lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y, | |
28108 | perfect_nestify): Likewise. | |
28109 | * langhooks.c (lhd_omp_assignment): Likewise. | |
28110 | * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses, | |
28111 | lower_copyprivate_clauses, lower_send_clauses, | |
28112 | lower_send_shared_vars, expand_parallel_call, | |
28113 | expand_omp_for_generic, expand_omp_for_static_nochunk, | |
28114 | expand_omp_for_static_chunk, expand_omp_sections, | |
28115 | lower_omp_single_copy, lower_omp_for_lastprivate, | |
28116 | lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise. | |
28117 | * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2, | |
28118 | tree_mod_subtract, tree_ic, tree_stringop_fixed_value): | |
28119 | Likewise. | |
28120 | ||
28121 | 2007-02-19 Kazu Hirata <kazu@codesourcery.com> | |
28122 | ||
28123 | * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h, | |
28124 | config/sh/sh.md: Follow spelling conventions. | |
28125 | ||
28126 | * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md, | |
28127 | config/frv/predicates.md: Follow spelling conventions. | |
28128 | ||
28129 | * config/m68k/linux-unwind.h: Fix a comment typo. | |
28130 | * target.h: Follow spelling conventions. | |
28131 | ||
28132 | 2007-02-18 Roger Sayle <roger@eyesopen.com> | |
28133 | ||
28134 | PR rtl-optimization/28173 | |
28135 | * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize | |
28136 | (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects. | |
28137 | Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0. | |
28138 | Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2. | |
28139 | <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2). | |
28140 | ||
28141 | 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
28142 | ||
28143 | * builtins.c (fold_builtin_load_exponent): New. | |
28144 | (fold_builtin_2): Use it. | |
28145 | ||
28146 | 2007-02-18 Steven Bosscher <steven@gcc.gnu.org> | |
28147 | ||
28148 | PR rtl-optimization/30773 | |
28149 | * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init | |
28150 | if we fail to attach a REG_EQUIV note. | |
28151 | ||
28152 | 2007-02-18 David Edelsohn <edelsohn@gnu.org> | |
28153 | Roger Sayle <roger@eyesopen.com> | |
28154 | ||
28155 | * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter. | |
28156 | ||
28157 | 2007-02-18 Sandra Loosemore <sandra@codesourcery.com> | |
28158 | ||
28159 | * calls.c (initialize_argument_information): Pass original EXP | |
28160 | and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move | |
28161 | code to split complex arguments here, as part of initializing the | |
28162 | ARGS array. | |
28163 | (expand_call): Remove code that builds a list of arguments and | |
28164 | inserts implicit arguments into it. Instead, just count how many | |
28165 | implicit arguments there will be so we can determine the size of | |
28166 | the ARGS array, and let initialize_argument_information do the work. | |
28167 | (split_complex_values): Delete unused function. | |
28168 | ||
28169 | 2007-02-18 Eric Botcazou <ebotcazou@adacore.com> | |
28170 | ||
28171 | * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR. | |
28172 | ||
28173 | 2007-02-18 Eric Botcazou <ebotcazou@adacore.com> | |
28174 | ||
28175 | * calls.c (mem_overlaps_already_clobbered_arg_p): Return true | |
28176 | for arg pointer based indexed addressing. | |
28177 | ||
28178 | 2007-02-18 Kazu Hirata <kazu@codesourcery.com> | |
28179 | ||
28180 | * config/ia64/ia64.h, config/ia64/ia64.md, | |
28181 | config/ia64/predicates.md, config/ia64/sysv4.h: Follow | |
28182 | spelling conventions. | |
28183 | ||
28184 | 2007-02-18 Roman Zippel <zippel@linux-m68k.org> | |
28185 | ||
28186 | * config/m68k/m68k.c (split_di): New. | |
28187 | * config/m68k/m68k-protos.h: Declare split_di. | |
28188 | * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*): | |
28189 | Improve predicate handling and split constant shifts. | |
28190 | ||
28191 | 2007-02-18 Roman Zippel <zippel@linux-m68k.org> | |
28192 | ||
28193 | * config/m68k/m68k.md (extv,extzv,insv): disable dynamic | |
28194 | parameter for register bitfield operations, general predicates | |
28195 | cleanup | |
28196 | ||
28197 | 2007-02-18 Roman Zippel <zippel@linux-m68k.org> | |
28198 | ||
28199 | * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define. | |
28200 | * config/m68k/linux-unwind.h: New file. | |
28201 | ||
28202 | 2007-02-18 Kazu Hirata <kazu@codesourcery.com> | |
28203 | ||
28204 | * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c, | |
28205 | config/i386/athlon.md, config/ia64/ia64.md, | |
28206 | config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md, | |
28207 | df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c, | |
28208 | ipa-prop.h, see.c, struct-equiv.c, tree-inline.c, | |
28209 | tree-ssa-loop-niter.c, tree-vect-analyze.c, | |
28210 | tree-vect-transform.c: Fix comment typos. | |
28211 | ||
28212 | 2007-02-17 Kazu Hirata <kazu@codesourcery.com> | |
28213 | ||
28214 | * sched-deps.c (find_insn_list): Remove. | |
28215 | * sched-int.h: Remove the prototype for find_insn_list. | |
28216 | ||
28217 | 2007-02-16 Geoffrey Keating <geoffk@apple.com> | |
28218 | ||
28219 | * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min | |
28220 | to linker. | |
28221 | (DARWIN_EXTRA_SPECS): Add %(darwin_minversion). | |
28222 | * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call | |
28223 | darwin_rs6000_override_options. | |
28224 | (C_COMMON_OVERRIDE_OPTIONS): Expect | |
28225 | darwin_macosx_version_min to be non-NULL always. | |
28226 | (TARGET_C99_FUNCTIONS): Likewise. | |
28227 | (CC1_SPEC): Always pass -mmacosx-version-min to cc1*. | |
28228 | (DARWIN_MINVERSION_SPEC): New. | |
28229 | * config/rs6000/rs6000.c (darwin_rs6000_override_options): New. | |
28230 | * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min | |
28231 | to cc1*. | |
28232 | (DARWIN_MINVERSION_SPEC): New. | |
28233 | * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL | |
28234 | value. | |
28235 | * config/darwin-c.c (darwin_cpp_builtins): Expect | |
28236 | darwin_macosx_version_min to be non-NULL always. | |
28237 | ||
28238 | * config/rs6000/rs6000.c: Clean up trailing whitespace. | |
28239 | ||
28240 | 2007-02-16 Uros Bizjak <ubizjak@gmail.com> | |
28241 | ||
28242 | * config/i386/i386.h (x86_use_xchgb): New. | |
28243 | (TARGET_USE_XCHGB): New macro. | |
28244 | * config/i386/i386.c (x86_use_xchgb): Set for PENT4. | |
28245 | * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter): | |
28246 | Split after reload into bswaphi for shifts of 8. | |
28247 | (bswaphi_lowpart): Generate rolw insn for HImode byte swaps. | |
28248 | (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB | |
28249 | or when optimizing for size. | |
28250 | ||
28251 | 2007-02-16 Richard Guenther <rguenther@suse.de> | |
28252 | Christian Bruel <christian.bruel@st.com> | |
28253 | ||
28254 | * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like | |
28255 | DECLs but prefer SSA_NAMEs over DECLs. | |
28256 | ||
28257 | 2007-02-16 Richard Guenther <rguenther@suse.de> | |
28258 | ||
28259 | * tree-flow-inline.h (single_imm_use_p): Remove. | |
28260 | (zero_imm_uses_p): Likewise. | |
28261 | * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use | |
28262 | instead of single_imm_use_p. | |
28263 | * tree-cfg.c (replace_uses_by): Use has_zero_use instead of | |
28264 | zero_imm_uses_p. | |
28265 | ||
28266 | 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | |
28267 | ||
28268 | PR other/27843 | |
28269 | * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid | |
28270 | nested double- and backquotes. | |
28271 | ||
28272 | 2007-02-15 Roger Sayle <roger@eyesopen.com> | |
28273 | ||
28274 | PR middle-end/30391 | |
28275 | * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT | |
28276 | should be unreachable. | |
28277 | (build2_stat): Allow construction of MODIFY_EXPR at any time. | |
28278 | For the time being redirect GIMPLE_MODIFY_STMT to the new | |
28279 | (renamed) build_gimple_modify_stmt_stat. | |
28280 | (build2_gimple_stat): Rename to... | |
28281 | (build_gimple_modify_stmt_stat): Now longer take a CODE argument. | |
28282 | Always build a GIMPLE_MODIFY_STMT node. | |
28283 | * tree.h (build2_gimple, build2_gimple_stat): Delete. | |
28284 | (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New | |
28285 | declarations. | |
28286 | ||
28287 | * tree-cfg.c (factor_computed_gotos, tree_merge_blocks, | |
28288 | gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple. | |
28289 | * tree-complex.c (set_component_ssa_name, expand_complex_move, | |
28290 | expand_complex_div_wide): Likewise. | |
28291 | * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. | |
28292 | * tree-ssa-loop-im.c (schedule_sm): Likewise. | |
28293 | * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise. | |
28294 | * tree-ssa-loop-manip.c (create_iv): Likewise. | |
28295 | * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement, | |
28296 | abs_replacement): Likewise. | |
28297 | * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt, | |
28298 | realify_fake_stores): Likewise. | |
28299 | ||
28300 | * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR | |
28301 | node rather than a GIMPLE_MODIFY_STMT node. | |
28302 | (std_gimpify_va_arg_expr, expand_builtin_va_copy, | |
28303 | fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos): | |
28304 | Likewise. | |
28305 | (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT. | |
28306 | * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and | |
28307 | GIMPLE_MODIFY_STMT. | |
28308 | ||
28309 | 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
28310 | ||
28311 | PR middle-end/30433 | |
28312 | * fold-const.c (fold_comparison): Add back the | |
28313 | folding of constant complex comparisions. | |
28314 | ||
28315 | 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
28316 | ||
28317 | PR middle-end/30729 | |
28318 | * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side | |
28319 | effects unknown to this function, return early. | |
28320 | ||
28321 | 2007-02-15 Ian Lance Taylor <iant@google.com> | |
28322 | ||
28323 | * lower-subreg.c (move_eh_region_note): New static function. | |
28324 | (resolve_simple_move): Call it. | |
28325 | (decompose_multiword_subregs): Track blocks for which we resolve a | |
28326 | simple move which is also a control flow insn. Pass them to | |
28327 | find_many_sub_basic_blocks. | |
28328 | (pass_lower_subreg): Add TODO_verify_flow. | |
28329 | (pass_lower_subreg2): Likewise. | |
28330 | ||
28331 | 2007-02-15 Sandra Loosemore <sandra@codesourcery.com> | |
28332 | Brooks Moses <brooks.moses@codesourcery.com> | |
28333 | Lee Millward <lee.millward@codesourcery.com> | |
28334 | ||
28335 | * tree.h (enum tree_code_class): Add tcc_vl_exp. | |
28336 | (VL_EXP_CLASS_P): New. | |
28337 | (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of | |
28338 | TREE_CODE_LENGTH. | |
28339 | (TREE_OPERAND_CHECK_CODE): Likewise. | |
28340 | (GIMPLE_STMT_OPERAND_CHECK): Likewise. | |
28341 | (TREE_RTL_OPERAND_CHECK): Likewise. | |
28342 | (tree_operand_check_failed): Make second parameter the whole tree | |
28343 | instead of its code. Fixed callers. | |
28344 | (VL_EXP_CHECK): New. | |
28345 | (TREE_OPERAND_LENGTH): New. | |
28346 | (VL_EXP_OPERAND_LENGTH): New. | |
28347 | (CALL_EXPR_FN): New. | |
28348 | (CALL_EXPR_STATIC_CHAIN): New. | |
28349 | (CALL_EXPR_ARGS): New. | |
28350 | (CALL_EXPR_ARG): New. | |
28351 | (call_expr_nargs): New. | |
28352 | (CALL_EXPR_ARGP): New. | |
28353 | (build_nt_call_list): Declare. | |
28354 | (build_vl_exp_stat): Declare. | |
28355 | (build_vl_exp): New. | |
28356 | (build_call_list): Declare. | |
28357 | (build_call_nary): Declare. | |
28358 | (build_call_valist): Declare. | |
28359 | (build_call_array): Declare. | |
28360 | (call_expr_arg): Declare. | |
28361 | (call_expr_argp): Declare. | |
28362 | (call_expr_arglist): Declare. | |
28363 | (fold_build_call_list): Declare. | |
28364 | (fold_build_call_list_initializer): Declare. | |
28365 | (fold_call_expr): Declare to replace fold_builtin. | |
28366 | (fold_builtin_fputs): Update to agree with modified definition. | |
28367 | (fold_builtin_strcpy): Likewise. | |
28368 | (fold_builtin_strncpy): Likewise. | |
28369 | (fold_builtin_memory_chk): Likewise. | |
28370 | (fold_builtin_stxcpy_chk): Likewise. | |
28371 | (fold_builtin_strncpy_chk): Likewise. | |
28372 | (fold_builtin_next_arg): Likewise. | |
28373 | (fold_build_call_expr): Declare. | |
28374 | (fold_builtin_call_list): Declare. | |
28375 | (fold_builtin_call_valist): Declare. | |
28376 | (build_call_expr): Declare. | |
28377 | (validate_arglist): Update to agree with modified definition. | |
28378 | (tree_operand_length): New. | |
28379 | (call_expr_arg_iterator): New. | |
28380 | (init_call_expr_arg_iterator): New. | |
28381 | (next_call_expr_arg): New. | |
28382 | (first_call_expr_arg): New. | |
28383 | (more_call_expr_args_p): New. | |
28384 | (FOR_EACH_CALL_EXPR_ARG): New. | |
28385 | ||
28386 | * tree.c (tree_code_class_string): Add entries for tcc_vl_exp | |
28387 | and tcc_gimple_stmt. | |
28388 | (tree_code_size): Update documentation. Use sizeof (tree) rather | |
28389 | than sizeof (char *). | |
28390 | (tree_size): Likewise. Add case for tcc_vl_exp. | |
28391 | (tree_node_structure): Add case for tcc_vl_exp. | |
28392 | (contains_placeholder_p): Likewise. | |
28393 | (substitute_in_expr): Likewise. | |
28394 | (substitute_placeholder_in_expr): Likewise. | |
28395 | (stabilize_reference_1): Likewise. | |
28396 | (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion | |
28397 | to diagnose breakage of this interface for constructing CALL_EXPRs. | |
28398 | (build_nt): Add similar assertion here. | |
28399 | (build_nt_call_list): New. | |
28400 | (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors. | |
28401 | (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of | |
28402 | TREE_CODE_LENGTH. | |
28403 | (get_callee_fndecl): Use new CALL_EXPR accessors. | |
28404 | (tree_operand_check_failed): Change parameters to pass entire node | |
28405 | instead of its code, so that we can call TREE_OPERAND_LENGTH on it. | |
28406 | (process_call_operands): New. | |
28407 | (build_vl_exp_stat): New. | |
28408 | (build_call_list): New. | |
28409 | (build_call_nary): New. | |
28410 | (build_call_valist): New. | |
28411 | (build_call_array): New. | |
28412 | (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28413 | (call_expr_arglist): New. | |
28414 | ||
28415 | * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use | |
28416 | tcc_vl_exp instead of a fixed-size tcc_expression. | |
28417 | ||
28418 | * doc/c-tree.texi (CALL_EXPR): Document new representation and | |
28419 | accessors for CALL_EXPRs. | |
28420 | (AGGR_INIT_EXPR): Likewise. | |
28421 | ||
28422 | 2007-02-15 Sandra Loosemore <sandra@codesourcery.com> | |
28423 | Brooks Moses <brooks.moses@codesourcery.com> | |
28424 | Lee Millward <lee.millward@codesourcery.com> | |
28425 | ||
28426 | * builtins.c (c_strlen): Return NULL_TREE instead of 0. | |
28427 | (expand_builtin_nonlocal_goto): Change parameter to be entire | |
28428 | CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors. | |
28429 | (expand_builtin_prefetch): Likewise. | |
28430 | (expand_builtin_classify_type): Likewise. | |
28431 | (mathfn_built_in): Return NULL_TREE instead of 0. | |
28432 | (expand_errno_check): Use new CALL_EXPR accessors. | |
28433 | (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors. | |
28434 | Return NULL_RTX instead of 0. | |
28435 | (expand_builtin_mathfn_2): Likewise. | |
28436 | (expand_builtin_mathfn_3): Likewise. | |
28437 | (expand_builtin_interclass_mathfn): Likewise. | |
28438 | (expand_builtin_sincos): Likewise. | |
28439 | (expand_builtin_cexpi): Likewise. | |
28440 | (expand_builtin_int_roundingfn): Likewise. | |
28441 | (expand_builtin_int_roundingfn_2): Likewise. | |
28442 | (expand_builtin_pow): Likewise. | |
28443 | (expand_builtin_powi): Likewise. | |
28444 | (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead | |
28445 | of arglist, fixing callers appropriately. Use new CALL_EXPR | |
28446 | accessors and constructors. Return NULL_RTX instead of 0. | |
28447 | (expand_builtin_strstr): Likewise. | |
28448 | (expand_builtin_strchr): Likewise. | |
28449 | (expand_builtin_strrchr): Likewise. | |
28450 | (expand_builtin_strpbrk): Likewise. | |
28451 | (expand_builtin_memcpy): Likewise. | |
28452 | (expand_builtin_mempcpy): Likewise. | |
28453 | (expand_builtin_mempcpy_args): New. | |
28454 | (expand_builtin_memmove): Similarly to expand_builtin_mempcpy. | |
28455 | (expand_builtin_memmove_args): New. | |
28456 | (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy. | |
28457 | (expand_movstr): Likewise. | |
28458 | (expand_builtin_strcpy): Likewise. | |
28459 | (expand_builtin_strcpy_args): New. | |
28460 | (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy. | |
28461 | (expand_builtin_strncpy): Likewise. | |
28462 | (expand_builtin_memset): Likewise. | |
28463 | (expand_builtin_memset_args): New. | |
28464 | (expand_builtin_bzero): Similarly to expand_builtin_memset. | |
28465 | (expand_builtin_memcmp): Likewise. | |
28466 | (expand_builtin_strcmp): Likewise. | |
28467 | (expand_builtin_strncmp): Likewise. | |
28468 | (expand_builtin_strcat): Likewise. | |
28469 | (expand_builtin_strncat): Likewise. | |
28470 | (expand_builtin_strspn): Likewise. | |
28471 | (expand_builtin_strcspn): Likewise. | |
28472 | (expand_builtin_args_info): Likewise. | |
28473 | (expand_builtin_va_start): Likewise. | |
28474 | (gimplify_va_arg_expr): Likewise. | |
28475 | (expand_builtin_va_end): Likewise. | |
28476 | (expand_builtin_va_copy): Likewise. | |
28477 | (expand_builtin_frame_address): Likewise. | |
28478 | (expand_builtin_alloca): Likewise. | |
28479 | (expand_builtin_bswap): Likewise. | |
28480 | (expand_builtin_unop): Likewise. | |
28481 | (expand_builtin_fputs): Likewise. | |
28482 | (expand_builtin_expect): Likewise. | |
28483 | (expand_builtin_fabs): Likewise. | |
28484 | (expand_builtin_copysign): Likewise. | |
28485 | (expand_builtin_printf): Likewise. | |
28486 | (expand_builtin_fprintf): Likewise. | |
28487 | (expand_builtin_sprintf): Likewise. | |
28488 | (expand_builtin_init_trampoline): Likewise. | |
28489 | (expand_builtin_signbit): Likewise. | |
28490 | (expand_builtin_fork_or_exec): Likewise. | |
28491 | (expand_builtin_sync_operation): Likewise. | |
28492 | (expand_builtin_compare_and_swap): Likewise. | |
28493 | (expand_builtin_lock_test_and_set): Likewise. | |
28494 | (expand_builtin_lock_release): Likewise. | |
28495 | (expand_builtin): Likewise. | |
28496 | (builtin_mathfn_code): Likewise. | |
28497 | ||
28498 | (fold_builtin_constant_p): Pass call arguments individually instead | |
28499 | of as an arglist, fixing callers appropriately. Use new CALL_EXPR | |
28500 | accessors and constructors. Return NULL_TREE instead of 0. | |
28501 | (fold_builtin_expect): Likewise. | |
28502 | (fold_builtin_classify_type): Likewise. | |
28503 | (fold_builtin_strlen): Likewise. | |
28504 | (fold_builtin_nan): Likewise. | |
28505 | (integer_valued_real_p): Likewise. | |
28506 | (fold_trunc_transparent_mathfn): Likewise. | |
28507 | (fold_fixed_mathfn): Likewise. | |
28508 | (fold_builtin_cabs): Likewise. | |
28509 | (fold_builtin_sqrt): Likewise. | |
28510 | (fold_builtin_cbrt): Likewise. | |
28511 | (fold_builtin_cos): Likewise. | |
28512 | (fold_builtin_cosh): Likewise. | |
28513 | (fold_builtin_tan): Likewise. | |
28514 | (fold_builtin_sincos): Likewise. | |
28515 | (fold_builtin_cexp): Likewise. | |
28516 | (fold_builtin_trunc): Likewise. | |
28517 | (fold_builtin_floor): Likewise. | |
28518 | (fold_builtin_ceil): Likewise. | |
28519 | (fold_builtin_round): Likewise. | |
28520 | (fold_builtin_int_roundingfn): Likewise. | |
28521 | (fold_builtin_bitop): Likewise. | |
28522 | (fold_builtin_bswap): Likewise. | |
28523 | (fold_builtin_logarithm): Likewise. | |
28524 | (fold_builtin_hypot): Likewise. | |
28525 | (fold_builtin_pow): Likewise. | |
28526 | (fold_builtin_powi): Likewise. | |
28527 | (fold_builtin_exponent): Likewise. | |
28528 | (fold_builtin_memset): Likewise. | |
28529 | (fold_builtin_bzero): Likewise. | |
28530 | (fold_builtin_memory_op): Likewise. | |
28531 | (fold_builtin_bcopy): Deleted; call site changed to invoke | |
28532 | fold_builtin_memory_op directly. | |
28533 | (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op. | |
28534 | (fold_builtin_strncpy): Likewise. | |
28535 | (fold_builtin_memcmp): Likewise. | |
28536 | (fold_builtin_strcmp): Likewise. | |
28537 | (fold_builtin_strncmp): Likewise. | |
28538 | (fold_builtin_signbit): Likewise. | |
28539 | (fold_builtin_copysign): Likewise. | |
28540 | (fold_builtin_isascii): Likewise. | |
28541 | (fold_builtin_toascii): Likewise. | |
28542 | (fold_builtin_isdigit): Likewise. | |
28543 | (fold_builtin_fabs): Likewise. | |
28544 | (fold_builtin_abs): Likewise. | |
28545 | (fold_builtin_fmin_fmax): Likewise. | |
28546 | (fold_builtin_carg): Likewise. | |
28547 | (fold_builtin_classify): Likewise. | |
28548 | (fold_builtin_unordered_cmp): Likewise. | |
28549 | ||
28550 | (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4): | |
28551 | New functions split out from fold_builtin_1. | |
28552 | (fold_builtin_n): New. | |
28553 | (fold_builtin_varargs): New. | |
28554 | (fold_builtin): Deleted. Most callers changed to use fold_call_expr | |
28555 | instead. | |
28556 | (fold_call_expr): New. | |
28557 | (build_function_call_expr): Rewrite to use new helper function. | |
28558 | (fold_builtin_call_list): New. | |
28559 | (build_call_expr): New. | |
28560 | (fold_builtin_call_valist): New. | |
28561 | (rewrite_call_expr): New. | |
28562 | (validate_arg): New. | |
28563 | (validate_arglist): Change parameter to be entire CALL_EXPR instead | |
28564 | of an arglist. Change return type to bool. Use new CALL_EXPR | |
28565 | accessors. | |
28566 | ||
28567 | (fold_builtin_strstr): Pass call arguments individually instead | |
28568 | of as an arglist, fixing callers appropriately. Use new CALL_EXPR | |
28569 | accessors and constructors. Return NULL_TREE instead of 0. | |
28570 | (fold_builtin_strchr): Likewise. | |
28571 | (fold_builtin_strrchr): Likewise. | |
28572 | (fold_builtin_strpbrk): Likewise. | |
28573 | (fold_builtin_strcat): Likewise. | |
28574 | (fold_builtin_strncat): Likewise. | |
28575 | (fold_builtin_strspn): Likewise. | |
28576 | (fold_builtin_strcspn): Likewise. | |
28577 | (fold_builtin_fputs): Likewise. | |
28578 | (fold_builtin_next_arg): Likewise. | |
28579 | (fold_builtin_sprintf): Likewise. | |
28580 | ||
28581 | (expand_builtin_object_size): Use new CALL_EXPR accessors. Use | |
28582 | NULL_RTX instead of 0. | |
28583 | (expand_builtin_memory_chk): Likewise. | |
28584 | (maybe_emit_chk_warning): Likewise. | |
28585 | (maybe_emit_sprintf_chk_warning): Likewise. | |
28586 | ||
28587 | (fold_builtin_object_size): Pass call arguments individually instead | |
28588 | of as an arglist, fixing callers appropriately. Use new CALL_EXPR | |
28589 | accessors and constructors. Return NULL_TREE instead of 0. | |
28590 | (fold_builtin_memory_chk): Likewise. | |
28591 | (fold_builtin_stxcpy_chk): Likewise. | |
28592 | (fold_builtin_strncpy_chk): Likewise. | |
28593 | (fold_builtin_strcat_chk): Likewise. | |
28594 | (fold_builtin_strcat_chk): Likewise. | |
28595 | (fold_builtin_strncat_chk): Likewise. | |
28596 | (fold_builtin_sprintf_chk): Likewise. | |
28597 | (fold_builtin_snprintf_chk): Likewise. | |
28598 | (fold_builtin_printf): Likewise. | |
28599 | (fold_builtin_vprintf): Likewise. | |
28600 | ||
28601 | * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and | |
28602 | constructors. | |
28603 | (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case. | |
28604 | (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28605 | (extract_muldiv_1): Add VL_EXP_CLASS_P case. | |
28606 | (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors. | |
28607 | (fold_unary): Likewise. | |
28608 | (fold_binary): Likewise. | |
28609 | (fold_ternary): Remove CALL_EXPR case, since they are no longer | |
28610 | ternary expressions. | |
28611 | (fold): Add logic for tcc_vl_exp. | |
28612 | (fold_checksum_tree): Make it know about tcc_vl_exp. Use | |
28613 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28614 | (fold_build3_stat): Add assertion to flag broken interface for | |
28615 | constructing CALL_EXPRs. | |
28616 | (fold_build_call_list): New. | |
28617 | (fold_build_call_list_initializer): New. | |
28618 | (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and | |
28619 | constructors. | |
28620 | (fold_strip_sign_ops): Likewise. | |
28621 | ||
28622 | 2007-02-15 Sandra Loosemore <sandra@codesourcery.com> | |
28623 | Brooks Moses <brooks.moses@codesourcery.com> | |
28624 | Lee Millward <lee.millward@codesourcery.com> | |
28625 | ||
28626 | * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR | |
28627 | accessors and dump arguments explicitly. | |
28628 | ||
28629 | * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of | |
28630 | TREE_CODE_LENGTH. | |
28631 | (dump_generic_node): Use new CALL_EXPR accessors and walk arguments | |
28632 | explicitly. | |
28633 | (print_call_name): Use new CALL_EXPR accessors. | |
28634 | ||
28635 | * print-tree.c (print_node): Add case tcc_vl_exp. Print | |
28636 | CALL_EXPR arguments explicitly instead of as a list. Use | |
28637 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28638 | ||
28639 | * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors. | |
28640 | (vrp_visit_stmt): Likewise. | |
28641 | ||
28642 | * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it | |
28643 | know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of | |
28644 | TREE_CODE_LENGTH. | |
28645 | (force_move_till_expr): Likewise. | |
28646 | ||
28647 | * targhooks.c (default_external_stack_protect_fail): Use | |
28648 | build_call_expr instead of build_function_call_expr. | |
28649 | (default_hidden_stack_protect_fail): Likewise. | |
28650 | ||
28651 | * tree-complex.c (expand_complex_libcall): Use build_call_expr to | |
28652 | build the call. | |
28653 | ||
28654 | * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors | |
28655 | and walk arguments explicitly. | |
28656 | ||
28657 | * tree-ssa-loop-niter.c (simplify_replace_tree): Use | |
28658 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28659 | (expand_simple_operations): Likewise. | |
28660 | (infer_loop_bounds_from_array): Use new CALL_EXPR accessors. | |
28661 | ||
28662 | * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead | |
28663 | of TREE_CODE_LENGTH. | |
28664 | (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs. | |
28665 | ||
28666 | * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH | |
28667 | instead of TREE_CODE_LENGTH. | |
28668 | ||
28669 | * value_prof.c (tree_ic): Use new CALL_EXPR accessors. | |
28670 | (tree_ic_transform): Likewise. | |
28671 | (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as | |
28672 | parameter instead of arglist. Fix callers. | |
28673 | (tree_stringop_fixed_value): Use new CALL_EXPR accessors. | |
28674 | (tree_stringops_transform): Likewise. | |
28675 | (tree_indirect_call_to_profile): Likewise. | |
28676 | (tree_stringops_values_to_profile): Likewise. | |
28677 | ||
28678 | * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator. | |
28679 | (eliminate_tail_call): Likewise. | |
28680 | ||
28681 | * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors. | |
28682 | ||
28683 | * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): | |
28684 | Use TREE_OPERAND_LENGTH and generalize to handle any number of | |
28685 | operands. | |
28686 | (instantiate_parameters_1): Can't handle tcc_vl_exp here. | |
28687 | ||
28688 | * omp-low.c (build_omp_barrier): Use build_call_expr. | |
28689 | (lower_rec_input_clauses): Likewise. | |
28690 | (lower_reduction_clauses): Likewise. | |
28691 | (expand_parallel_call): Likewise. | |
28692 | (maybe_catch_exception): Likewise. | |
28693 | (expand_omp_for_generic): Likewise. | |
28694 | (expand_omp_for_static_nochunk): Likewise. | |
28695 | (expand_omp_sections): Likewise. | |
28696 | (lower_omp_single_simple): Likewise. | |
28697 | (lower_omp_single_copy): Likewise. | |
28698 | (lower_omp_master): Likewise. | |
28699 | (lower_omp_ordered): Likewise. | |
28700 | (lower_omp_critical): Likewise. | |
28701 | ||
28702 | * ipa-reference.c (check-call): Use new CALL_EXPR iterator. | |
28703 | (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR. | |
28704 | ||
28705 | * tree-gimple.c (is_gimple_call_addr): Fix doc. | |
28706 | (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of | |
28707 | TREE_CODE_LENGTH. Add tcc_vl_exp case. | |
28708 | ||
28709 | * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH | |
28710 | and generalize to handle any number of operands. | |
28711 | (chrec_contains_undetermined): Likewise. | |
28712 | (tree_contains_chrecs): Likewise. | |
28713 | (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH. | |
28714 | ||
28715 | * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors. | |
28716 | ||
28717 | * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use | |
28718 | fold_call_expr instead of fold_builtin. | |
28719 | (ccp_fold_builtin): Likewise. Update calls into builtins.c to | |
28720 | match declarations there. | |
28721 | (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc | |
28722 | updates. | |
28723 | ||
28724 | * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use | |
28725 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28726 | ||
28727 | * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors. | |
28728 | (scan_function): Add case tcc_vl_exp for CALL_EXPR. | |
28729 | ||
28730 | * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR | |
28731 | accessors. | |
28732 | ||
28733 | * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr. | |
28734 | (execute_cse_sincos): Use new CALL_EXPR accessors. | |
28735 | ||
28736 | * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator. | |
28737 | ||
28738 | * gimple-low.c (lower_function_body): Use build_call_expr. | |
28739 | (lower_builtin_setjmp): Likewise. | |
28740 | ||
28741 | * expr.c (emit_block_move_via_libcall): Use build_call_expr. | |
28742 | (set_storage_via_libcall): Likewise. | |
28743 | (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH | |
28744 | instead of TREE_CODE_LENGTH. | |
28745 | (expand_expr_real_1): Use new CALL_EXPR accessors. | |
28746 | ||
28747 | * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and | |
28748 | generalize to handle any number of operands. | |
28749 | (TB_parent_eq): Likewise. | |
28750 | ||
28751 | * predict.c (expr_expected_value): Use new CALL_EXPR accessors. | |
28752 | (strip_builtin_expect): Likewise. | |
28753 | ||
28754 | * function.c (gimplify_parameters): Use build_call_expr. | |
28755 | ||
28756 | * tree-vectorizer.c (vect_is_simple_reduction): Use | |
28757 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28758 | ||
28759 | * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators. | |
28760 | (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR. | |
28761 | ||
28762 | * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR | |
28763 | iterators. | |
28764 | ||
28765 | * gimplify.c (build_stack_save_restore): Use build_call_expr. | |
28766 | (gimplify_decl_expr): Likewise. | |
28767 | (gimplify_call_expr): Use fold_call_expr instead of fold_builtin. | |
28768 | Use new CALL_EXPR iterators. | |
28769 | (gimplify_modify_expr_to_memcpy): Use build_call_expr. | |
28770 | (gimplify_modify_expr_to_memset): Likewise. | |
28771 | (gimplify_variable_sized_compare): Likewise. | |
28772 | (gimplify_omp_atomic_fetch_op): Likewise. | |
28773 | (gimplify_omp_atomic_pipeline): Likewise. | |
28774 | (gimplify_omp_atomic_mutex): Likewise. | |
28775 | (gimplify_function_tree): Likewise. | |
28776 | ||
28777 | * calls.c (alloca_call_p): Use new CALL_EXPR accessors. | |
28778 | (call_expr_flags): Likewise. | |
28779 | (expand_call): Likewise. | |
28780 | ||
28781 | * except.c (expand_builtin_eh_return_data_regno): Pass entire | |
28782 | CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR | |
28783 | accessors. | |
28784 | ||
28785 | * coverage.c (create_coverage): Use build_call_expr. | |
28786 | ||
28787 | * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete. | |
28788 | (temp_call_expr_obstack): New. | |
28789 | (pool_copy_list): Delete. | |
28790 | (temp_copy_call_expr): New. | |
28791 | (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new | |
28792 | CALL_EXPR accessors. Get rid of special goo for copying argument | |
28793 | lists and use temp_copy_call_expr instead. | |
28794 | (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new | |
28795 | CALL_EXPR accessors. | |
28796 | (create_expression_by_pieces): Likewise. Use build_call_array | |
28797 | to construct the result instead of fold_build3. | |
28798 | (create_value_expr_from): Add tcc_vl_exp. Delete special goo for | |
28799 | dealing with argument lists. | |
28800 | (init_pre): Remove references to expression_node_pool and | |
28801 | list_node_pool. Init temp_call_expr_obstack instead. | |
28802 | (fini_pre): Remove references to expression_node_pool and | |
28803 | list_node_pool. | |
28804 | ||
28805 | * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors | |
28806 | and walk arguments explicitly instead of as a list. | |
28807 | ||
28808 | * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr. | |
28809 | (mx_register_decls): Likewise. | |
28810 | (mudflap_register_call): Likewise. | |
28811 | (mudflap_finish_file): Likewise. | |
28812 | ||
28813 | * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors. | |
28814 | (ipa_callsite_compute_param): Likewise. | |
28815 | ||
28816 | * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR | |
28817 | accessors and constructor. | |
28818 | ||
28819 | * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR | |
28820 | accessors and constructor. | |
28821 | (convert_tramp_reference): Likewise. | |
28822 | (convert_call_expr): Likewise. | |
28823 | (finalize_nesting_tree_1): Likewise. | |
28824 | ||
28825 | * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR | |
28826 | accessors. | |
28827 | ||
28828 | * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr. | |
28829 | ||
28830 | * tree-inline.c (initialize_inlined_parameters): Pass entire | |
28831 | CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR | |
28832 | accessors. | |
28833 | (estimate_num_insns_1): Use new CALL_EXPR accessors. | |
28834 | (expand_call_inline): Tidy up call to initialize_inlined_parameters. | |
28835 | ||
28836 | * tree-vect-transform.c (vect_create_epilog_for_reduction): Use | |
28837 | TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28838 | (vectorizable_reduction): Likewise. | |
28839 | (vectorizable_call): Use new CALL_EXPR iterators. | |
28840 | (vectorizable_conversion): Use build_call_expr. | |
28841 | (vectorizable_operation): Use TREE_OPERAND_LENGTH. | |
28842 | (vect_gen_widened_results_half): Use build_call_expr. | |
28843 | (vect_setup_realignment): Likewise. | |
28844 | (vectorizable_live_operation): Use TREE_OPERAND_LENGTH. | |
28845 | ||
28846 | * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors. | |
28847 | (pass_through_call): Likewise. | |
28848 | (compute_object_sizes): Likewise. Use fold_call_expr instead of | |
28849 | fold_builtin. | |
28850 | ||
28851 | * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr. | |
28852 | (tree_gen_pow2_profiler): Likewise. | |
28853 | (tree_gen_one_value_profiler): Likewise. | |
28854 | (tree_gen_ic_func_profiler): Likewise. | |
28855 | (tree_gen_average_profiler): Likewise. | |
28856 | (tree_gen_ior_profiler): Likewise. | |
28857 | ||
28858 | * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp. | |
28859 | (find_func_aliases): Use new CALL_EXPR accessors. Add case | |
28860 | tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. | |
28861 | ||
28862 | * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead | |
28863 | of TREE_CODE_LENGTH. | |
28864 | ||
28865 | * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead | |
28866 | of TREE_CODE_LENGTH. | |
28867 | ||
28868 | * convert.c (convert_to_real): Use new CALL_EXPR accessors and | |
28869 | constructor. | |
28870 | (convert_to_integer): Likewise. | |
28871 | ||
28872 | * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR | |
28873 | accessors. | |
28874 | ||
28875 | 2007-02-15 Sandra Loosemore <sandra@codesourcery.com> | |
28876 | Brooks Moses <brooks.moses@codesourcery.com> | |
28877 | Lee Millward <lee.millward@codesourcery.com> | |
28878 | ||
28879 | * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR | |
28880 | accessors. | |
28881 | * config/frv/frv.c (frv_expand_builtin): Likewise. | |
28882 | * config/s390/s390.c (s390_expand_builtin): Likewise. | |
28883 | ||
28884 | * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr. | |
28885 | (sparc_expand_builtin): Use new CALL_EXPR accessors. | |
28886 | ||
28887 | * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise. | |
28888 | (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter | |
28889 | instead of arglist. Use new CALL_EXPR accessors on it. Fix callers. | |
28890 | (ix86_expand_store_builtin): Likewise. | |
28891 | (ix86_expand_unop_builtin): Likewise. | |
28892 | (ix86_expand_unop1_builtin): Likewise. | |
28893 | (ix86_expand_sse_compare): Likewise. | |
28894 | (ix86_expand_sse_comi): Likewise. | |
28895 | (ix86_expand_vec_init_builtin): Likewise. | |
28896 | (ix86_expand_vec_ext_builtin): Likewise. | |
28897 | (ix86_expand_vec_set_builtin): Likewise. | |
28898 | (ix86_expand_builtin): Use new CALL_EXPR accessors. | |
28899 | ||
28900 | * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors. | |
28901 | * config/c4x/c4x.c (c4x_expand_builtin): Likewise. | |
28902 | ||
28903 | * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR | |
28904 | instead of arglist. Use new CALL_EXPR accessors. Fix callers. | |
28905 | (iq2000_expand_builtin): Use new CALL_EXPR accessors. | |
28906 | ||
28907 | * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use | |
28908 | build_call_expr. | |
28909 | * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. | |
28910 | (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of | |
28911 | arglist. Use new CALL_EXPR accessors. Fix callers. | |
28912 | (altivec_expand_abs_builtin): Likewise. | |
28913 | (rs6000_expand_binop_builtin): Likewise. | |
28914 | (altivec_expand_predicate_builtin): Likewise. | |
28915 | (altivec_expand_lv_builtin): Likewise. | |
28916 | (spe_expand_stv_builtin): Likewise. | |
28917 | (altivec_expand_stv_builtin): Likewise. | |
28918 | (rs6000_expand_ternop_builtin): Likewise. | |
28919 | (altivec_expand_ld_builtin): Use new CALL_EXPR accessors. | |
28920 | (altivec_expand_st_builtin): Likewise. | |
28921 | (altivec_expand_dst_builtin): Likewise. | |
28922 | (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of | |
28923 | arglist. Use new CALL_EXPR accessors. Fix callers. | |
28924 | (altivec_expand_vec_set_builtin): Likewise. | |
28925 | (altivec_expand_vec_ext_builtin): Likewise. | |
28926 | (altivec_expand_builtin): Use new CALL_EXPR accessors. | |
28927 | (spe_expand_builtin): Likewise. | |
28928 | (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of | |
28929 | arglist. Use new CALL_EXPR accessors. Fix callers. | |
28930 | (spe_expand_evsel_builtin): Likewise. | |
28931 | (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and | |
28932 | FCFSX cases must construct whole new CALL_EXPR, not just arglist. | |
28933 | ||
28934 | * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR | |
28935 | instead of arglist. Use new CALL_EXPR accessors. Fix callers. | |
28936 | (arm_expand_unop_builtin): Likewise. | |
28937 | (arm_expand_builtin): Use new CALL_EXPR accessors. | |
28938 | ||
28939 | * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR | |
28940 | accessors. | |
28941 | ||
28942 | * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire | |
28943 | CALL_EXPR instead of arglist. Use new CALL_EXPR accessors. | |
28944 | Fix callers. | |
28945 | (bfin_expand_unop_builtin): Likewise. | |
28946 | (bfin_expand_builtin): Use new CALL_EXPR accessors. | |
28947 | ||
28948 | 2007-02-15 Sandra Loosemore <sandra@codesourcery.com> | |
28949 | Brooks Moses <brooks.moses@codesourcery.com> | |
28950 | Lee Millward <lee.millward@codesourcery.com> | |
28951 | ||
28952 | * c-semantics.c (build_stmt): Add internal diagnostic check. | |
28953 | ||
28954 | * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR | |
28955 | accessors. Print arguments explicitly instead of as a list. | |
28956 | ||
28957 | * c-typeck.c (build_function_call): Use new CALL_EXPR constructors. | |
28958 | ||
28959 | * c-omp.c (c_finish_omp_barrier): Use build_call_expr. | |
28960 | (c_finish_omp_flish): Likewise. | |
28961 | ||
28962 | * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse | |
28963 | arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH | |
28964 | instead of TREE_CODE_LENGTH. | |
28965 | (check_function_arguments_recurse): Use new CALL_EXPR accessors. | |
28966 | (c_warn_unused_result): Likewise. | |
28967 | ||
28968 | 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
28969 | ||
28970 | PR c/26494 | |
28971 | * doc/invoke.texi (Warning Options): Remove | |
28972 | -Werror-implicit-function-declaration. | |
28973 | (Wimplicit-function-declaration): Update description. | |
28974 | * opts.c (common_handle_option): Move handling of -Werror=* to... | |
28975 | (enable_warning_as_error): ...here. | |
28976 | * opts.h (enable_warning_as_error): Declare. | |
28977 | * c-decl.c (implicit_decl_warning): Unless | |
28978 | -Wno-implicit-function-declaration is given, emit a pedwarn if | |
28979 | -std=c99 or emit a warning if -Wimplicit-function-declaration. | |
28980 | * c.opt (Wimplicit-function-declaration): Replace | |
28981 | mesg_implicit_function_declaration with | |
28982 | warn_implicit_function_declaration. | |
28983 | * c-opts.c (c_common_handle_option): | |
28984 | -Werror-implicit-function-declaration is exactly equal as | |
28985 | -Werror=implicit-function-declaration. | |
28986 | (set_Wimplicit): Replace mesg_implicit_function_declaration with | |
28987 | warn_implicit_function_declaration. | |
28988 | (c_common_post_options): -Wimplict-function-declaration is enabled | |
28989 | by default by -std=c99, otherwise is disabled by default. | |
28990 | * c-objc-common.c (c_objc_common_init): Remove flawed logic. | |
28991 | ||
28992 | 2007-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
28993 | ||
28994 | * gimplify.c (gimplify_modify_expr): During gimplification, attach a | |
28995 | DECL on the rhs to a DECL on the lhs for debug info purposes if the | |
28996 | former is ignored but not the latter. | |
28997 | ||
28998 | 2007-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
28999 | ||
29000 | * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary | |
29001 | is made and the reference doesn't use the alias set of its type, | |
29002 | do not create the temporary using that type. | |
29003 | ||
29004 | 2007-02-15 Aldy Hernandez <aldyh@redhat.com> | |
29005 | ||
29006 | * jump.c: Remove prototypes for delete_computation and | |
29007 | delete_prior_computation. | |
29008 | ||
29009 | 2007-02-15 Paolo Bonzini <bonzini@gnu.org> | |
29010 | ||
29011 | * jump.c (get_label_after): Delete. | |
29012 | (get_label_before, delete_computation, delete_jump, | |
29013 | delete_prior_computation, follow_jumps): Move... | |
29014 | * reorg.c (delete_computation, delete_prior_computation): ... here... | |
29015 | (get_label_before, delete_jump): ... making these static ... | |
29016 | (follow_jumps): ... and simplifying this since it only runs after | |
29017 | reload. | |
29018 | * rtl.h (get_label_after, get_label_before, delete_jump, | |
29019 | follow_jumps): Delete prototypes. | |
29020 | ||
29021 | 2007-02-15 Paolo Bonzini <bonzini@gnu.org> | |
29022 | ||
29023 | * caller-save.c (save_call_clobbered_regs): Do not process sibcalls. | |
29024 | ||
29025 | 2007-02-15 Nick Clifton <nickc@redhat.com> | |
29026 | ||
29027 | * varasm.c (default_asm_output_anchor): Prepend * to . symbol in | |
29028 | order to prevent it from being munged by the target. | |
29029 | ||
29030 | 2007-02-15 Uros Bizjak <ubizjak@gmail.com> | |
29031 | ||
29032 | * config/i386/i386.md: Remove misleading comment. | |
29033 | ||
29034 | 2007-02-15 Alexandre Oliva <aoliva@redhat.com> | |
29035 | ||
29036 | * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns, | |
29037 | reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove | |
29038 | invalid patterns. | |
29039 | ||
29040 | 2007-02-15 Alexandre Oliva <aoliva@redhat.com> | |
29041 | ||
29042 | * tree-sra.c (instantiate_missing_elements): Canonicalize | |
29043 | bit-field types. | |
29044 | (sra_build_assignment): New. | |
29045 | (generate_copy_inout, generate_element_copy, | |
29046 | generate_element_zero, generate_one_element_init): Use it. | |
29047 | ||
29048 | 2007-02-15 Alexandre Oliva <aoliva@redhat.com> | |
29049 | ||
29050 | * tree-sra.c (instantiate_missing_elements): Canonicalize | |
29051 | bit-field types. | |
29052 | (sra_build_assignment): New. | |
29053 | (generate_copy_inout, generate_element_copy, | |
29054 | generate_element_zero, generate_one_element_init): Use it. | |
29055 | ||
29056 | 2007-02-15 Alexandre Oliva <aoliva@redhat.com> | |
29057 | ||
29058 | * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of | |
29059 | limbo die nodes. | |
29060 | ||
29061 | 2007-02-14 Joseph Myers <joseph@codesourcery.com> | |
29062 | ||
29063 | * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex | |
29064 | types as aggregates not scalars. | |
29065 | * function.c (assign_stack_temp_for_type): Likewise. | |
29066 | ||
29067 | 2007-02-14 Roger Sayle <roger@eyesopen.com> | |
29068 | Zdenek Dvorak <dvorakz@suse.cz> | |
29069 | ||
29070 | * tree-dump.c (dump_switch_p_1): Require exact match of the option | |
29071 | name. | |
29072 | ||
29073 | 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz> | |
29074 | ||
29075 | * passes.c (next_pass_1): Clear the next field of the copied | |
29076 | pass structure. | |
29077 | ||
29078 | 2007-02-14 Richard Henderson <rth@redhat.com> | |
29079 | ||
29080 | * tree-sra.c (early_sra): New. | |
29081 | (decl_can_be_decomposed_p): Deny va_list if early_sra. | |
29082 | (tree_sra_early, pass_sra_early): New. | |
29083 | * tree-pass.h (pass_sra_early): Declare. | |
29084 | * passes.c (init_optimization_passes): Use it. | |
29085 | ||
29086 | 2007-02-14 Richard Guenther <rguenther@suse.de> | |
29087 | ||
29088 | * flags.h (issue_strict_overflow_warning): Convert to a macro. | |
29089 | ||
29090 | 2007-02-14 Dorit Nuzman <dorit@il.ibm.com> | |
29091 | ||
29092 | PR tree-optimization/30771 | |
29093 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse | |
29094 | also phi nodes. | |
29095 | (vect_analyze_operations): Induction phis can now be marked as | |
29096 | used_in_loop. | |
29097 | (vect_mark_stmts_to_be_vectorized): No special treatment for phis. | |
29098 | Update documentation accordingly. | |
29099 | ||
29100 | 2007-02-14 Nick Clifton <nickc@redhat.com> | |
29101 | ||
29102 | * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at | |
29103 | most 3 arguments are supported. | |
29104 | (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description. | |
29105 | ||
29106 | 2007-02-13 Seongbae Park <seongbae.park@gmail.com> | |
29107 | ||
29108 | * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor): | |
29109 | Ensure dst->current is valid. | |
29110 | ||
29111 | 2007-02-13 Paul Brook <paul@codesourcery.com> | |
29112 | ||
29113 | * config.gcc: Add arm*-*-uclinux-*eabi. | |
29114 | * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define. | |
29115 | (SUBTARGET_EXTRA_LINK_SPEC): Define. | |
29116 | (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling. | |
29117 | (LINK_GCC_C_SEQUENCE_SPEC): Undef. | |
29118 | (LINK_SPEC): Define. | |
29119 | (LIB_SPEC): Define. | |
29120 | * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC | |
29121 | register. | |
29122 | * config/arm/uclinux-eabi.h: New file. | |
29123 | * config/arm/linux-eabi.h (WCHAR_TYPE): Remove. | |
29124 | * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS | |
29125 | based targets. | |
29126 | ||
29127 | 2007-02-13 Ian Lance Taylor <iant@google.com> | |
29128 | ||
29129 | * common.opt: Add Wstrict-overflow and Wstrict-overflow=. | |
29130 | * flags.h (warn_strict_overflow): Declare. | |
29131 | (enum warn_strict_overflow_code): Define. | |
29132 | (issue_strict_overflow_warning): New static inline function. | |
29133 | * opts.c (warn_strict_overflow): New variable. | |
29134 | (common_handle_option): Handle OPT_Wstrict_overflow and | |
29135 | OPT_Wstrict_overflow_. | |
29136 | * c-opts.c (c_common_handle_option): Set warn_strict_overflow for | |
29137 | OPT_Wall. | |
29138 | * fold-const.c: Include intl.h. | |
29139 | (fold_deferring_overflow_warnings): New static variable. | |
29140 | (fold_deferred_overflow_warning): New static variable. | |
29141 | (fold_deferred_overflow_code): New static variable. | |
29142 | (fold_defer_overflow_warnings): New function. | |
29143 | (fold_undefer_overflow_warnings): New function. | |
29144 | (fold_undefer_and_ignore_overflow_warnings): New function. | |
29145 | (fold_deferring_overflow_warnings_p): New function. | |
29146 | (fold_overflow_warning): New static function. | |
29147 | (make_range): Add strict_overflow_p parameter. Change all | |
29148 | callers. | |
29149 | (extract_muldiv, extract_muldiv_1): Likewise. | |
29150 | (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling | |
29151 | tree_expr_nonnegative_p. | |
29152 | (fold_negate_expr): Call fold_overflow_warning. | |
29153 | (fold_range_test): Likewise. | |
29154 | (fold_comparison): Likewise. | |
29155 | (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p | |
29156 | instead of tree_expr_nonnegative_p. | |
29157 | (tree_expr_nonnegative_warnv_p): Rename from | |
29158 | tree_expr_nonnegative_p, add strict_overflow_p parameter. | |
29159 | (tree_expr_nonnegative_p): New function. | |
29160 | (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add | |
29161 | strict_overflow_p parameter. | |
29162 | (tree_expr_nonzero_p): New function. | |
29163 | * passes.c (verify_interpass_invariants): New static function. | |
29164 | (execute_one_pass): Call it. | |
29165 | * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold | |
29166 | warnings. | |
29167 | (number_of_iterations_exit, loop_niter_by_eval): Likewise. | |
29168 | (estimate_numbers_of_iterations): Likewise. | |
29169 | (scev_probably_wraps_p): Likewise. | |
29170 | * tree-ssa-ccp.c: Include "toplev.h". | |
29171 | (evaluate_stmt): Defer fold overflow warnings until we know we are | |
29172 | going to optimize. | |
29173 | (struct fold_stmt_r_data): Add stmt field. | |
29174 | (fold_stmt_r): Defer fold overflow warnings until we know we | |
29175 | optimized. | |
29176 | (fold_stmt): Initialize stmt field of fold_stmt_r_data. | |
29177 | (fold_stmt_inplace): Likewise. | |
29178 | * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h". | |
29179 | (cleanup_control_expr_graph): Defer fold overflow warnings until | |
29180 | we know we are going to optimize. | |
29181 | * tree-cfg.c (fold_cond_expr_cond): Likewise. | |
29182 | * tree-ssa-threadedge.c (simplify_control_stmt_condition): | |
29183 | Likewise. | |
29184 | * tree-vrp.c (vrp_expr_computes_nonnegative): Call | |
29185 | tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p. | |
29186 | * tree-ssa-loop-manip.c (create_iv): Likewise. | |
29187 | * c-typeck.c (build_conditional_expr): Likewise. | |
29188 | (build_binary_op): Likewise. | |
29189 | * tree-vrp.c (vrp_expr_computes_nonzero): Call | |
29190 | tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p. | |
29191 | (extract_range_from_unary_expr): Likewise. | |
29192 | * simplify-rtx.c (simplify_const_relational_operation): Warn when | |
29193 | assuming that signed overflow does not occur. | |
29194 | * c-common.c (pointer_int_sum): Ignore fold overflow warnings. | |
29195 | * tree.h (tree_expr_nonnegative_warnv_p): Declare. | |
29196 | (fold_defer_overflow_warnings): Declare. | |
29197 | (fold_undefer_overflow_warnings): Declare. | |
29198 | (fold_undefer_and_ignore_overflow_warnings): Declare. | |
29199 | (fold_deferring_overflow_warnings_p): Declare. | |
29200 | (tree_expr_nonzero_warnv_p): Declare. | |
29201 | * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list | |
29202 | of warning options. | |
29203 | (Warning Options): Document -Wstrict-overflow. | |
29204 | * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h. | |
29205 | (tree-ssa-ccp.o): Likewise. | |
29206 | (tree-cfgcleanup.o): Change errors.h dependency to toplev.h. | |
29207 | (fold-const.o): Depend on intl.h. | |
29208 | ||
29209 | 2007-02-13 Ian Lance Taylor <iant@google.com> | |
29210 | ||
29211 | PR middle-end/30751 | |
29212 | * lower-subreg.c (resolve_simple_move): Decompose subregs in | |
29213 | addresses. | |
29214 | ||
29215 | 2007-02-13 Stuart Hastings <stuart@apple.com> | |
29216 | ||
29217 | * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2. | |
29218 | ||
29219 | 2007-02-13 Richard Henderson <rth@redhat.com> | |
29220 | ||
29221 | * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip | |
29222 | handled_component_p before looking for the indirect_ref. | |
29223 | ||
29224 | 2007-02-13 Richard Henderson <rth@redhat.com> | |
29225 | ||
29226 | * config/i386/i386.md (bswapsi_1): Rename from bswapsi2, | |
29227 | remove flags clobber. | |
29228 | (bswapsi2): New expander, emit code for !TARGET_BSWAP. | |
29229 | (bswaphi_lowpart): New. | |
29230 | (bswapdi2): Rename from bswapdi2_rex, remove flags clobber, | |
29231 | remove TARGET_BSWAP test. Delete expander of the same name. | |
29232 | ||
29233 | * optabs.c (widen_bswap, expand_doubleword_bswap): New. | |
29234 | (expand_unop): Use them. | |
29235 | ||
29236 | 2007-02-13 Uros Bizjak <ubizjak@gmail.com> | |
29237 | ||
29238 | * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1, | |
29239 | *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor, | |
29240 | *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64, | |
29241 | *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext, | |
29242 | *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea, | |
29243 | *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea, | |
29244 | *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent | |
29245 | assembler dialect choice from asm templates. | |
29246 | ||
29247 | 2007-02-12 Richard Henderson <rth@redhat.com> | |
29248 | ||
29249 | * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn. | |
29250 | (fixuns_trunc<SSEMODEF>si2): Use it. | |
29251 | * config/i386/sse.md (vec_setv4sf_0): Export. | |
29252 | * config/i386/i386.c (ix86_build_const_vector): Export. | |
29253 | (ix86_split_convert_uns_si_sse): Rename from | |
29254 | ix86_expand_convert_uns_si_sse and rewrite as a splitter. | |
29255 | * config/i386/i386-protos.h: Update. | |
29256 | ||
29257 | 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29258 | ||
29259 | PR c/29521 | |
29260 | * c-typeck.c (c_finish_return): Improve warning message. | |
29261 | ||
29262 | 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29263 | ||
29264 | * alias.c (find_symbolic_term): Delete unused function. | |
29265 | ||
29266 | 2007-02-12 Uros Bizjak <ubizjak@gmail.com> | |
29267 | ||
29268 | * config/i386/i386.md (paritydi2, paritysi2): New expanders. | |
29269 | (paritydi2_cmp, paritydi2_cmp): New insn and split patterns. | |
29270 | (*parityhi2_cmp, *parityqi2_cmp): New insn patterns. | |
29271 | ||
29272 | 2007-02-12 Eric Botcazou <ebotcazou@adacore.com> | |
29273 | ||
29274 | * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. | |
29275 | * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on | |
29276 | the function, temporarily point the debug interface to the null one. | |
29277 | ||
29278 | 2007-02-12 Eric Botcazou <ebotcazou@adacore.com> | |
29279 | ||
29280 | * dwarf2out.c (round_up_to_align): New static function. | |
29281 | (field_byte_offset): Use it to round the offset. | |
29282 | ||
29283 | 2007-02-12 Richard Henderson <rth@redhat.com> | |
29284 | ||
29285 | * config/alpha/alpha.md (bswapsi2, bswapdi2): New. | |
29286 | (inswl_const): Export. | |
29287 | ||
29288 | 2007-02-12 Richard Henderson <rth@redhat.com> | |
29289 | ||
29290 | * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the | |
29291 | result mode of the libcall, convert back to outmode. | |
29292 | ||
29293 | 2007-02-12 Roger Sayle <roger@eyesopen.com> | |
29294 | ||
29295 | * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2. | |
29296 | (bswapdi2): New define_expand to implement 32-bit implementation. | |
29297 | ||
29298 | 2007-02-12 Nick Clifton <nickc@redhat.com> | |
29299 | ||
29300 | * doc/invoke.texi (Overall Options): Document --help=. | |
29301 | * gcc.c (target_help_flag): Rename to print_subprocess_flag. | |
29302 | (cc1_options): Pass --help= on to cc1. | |
29303 | (display_help): Add description of --help=. | |
29304 | (process_command): Add code to handle --help=. Allow translated | |
29305 | --help and --target-help switches to be passed on to compiler | |
29306 | sub-process. | |
29307 | (main): Remove unused if statement. | |
29308 | * opts.c (columns): Remove. | |
29309 | (LEFT_COLUMN): Define. | |
29310 | (wrap_help): Add columns argument. | |
29311 | (print_filtered_help): Change parameters to be an include bitmask, | |
29312 | an exclude bitmask, an any bitmask and the column width. Move the | |
29313 | code to display the params list here. Add code to display the | |
29314 | status of options rather than their descriptions if the quiet flag | |
29315 | is not active. | |
29316 | (print_specific_help): Change parameters to be an include bitmask, | |
29317 | an exclude bitmask and an any bitmask. Move code to look up the | |
29318 | column width here. Decide upon the title for an options listing. | |
29319 | (common_handle_options): Add code to handle --help=. Adapt code | |
29320 | for --help and --target-help to use the revised form of the | |
29321 | print_specific_help function. | |
29322 | (print_help): Delete. | |
29323 | (print_param_help): Delete. | |
29324 | (print_switch): Delete. | |
29325 | * opts.h (cl_lang_count): Add prototype. | |
29326 | (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS, | |
29327 | CL_MAX_OPTION_CLASS): New defines. | |
29328 | * optc-gen.awk: Add construction of cl_lang_count. | |
29329 | * c.opt: Add Warning attribute to warning options and Optimization | |
29330 | attribute to optimization options. | |
29331 | * common.opt: Likewise. | |
29332 | Add --help=. | |
29333 | Add -fhelp and -ftarget-help as aliases for the transformed --help | |
29334 | and --target-help options. | |
29335 | * opt-functions.awk: Add code to handle Warning and Optimization | |
29336 | attributes. | |
29337 | ||
29338 | 2007-02-12 Richard Henderson <rth@redhat.com> | |
29339 | ||
29340 | * config/alpha/constraints.md: New file. | |
29341 | * config/alpha/alpha.c: Include tm-constrs.h. | |
29342 | (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p, | |
29343 | alpha_extra_constraint): Remove. | |
29344 | (alpha_emit_conditional_branch): Use satisfies_constraint_*. | |
29345 | * config/alpha/alpha-protos.h: Update. | |
29346 | * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove. | |
29347 | (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove. | |
29348 | (EXTRA_CONSTRAINT): Remove. | |
29349 | * config/alpha/alpha.md: Include constraints.md. | |
29350 | (adddi splitter): Use satisfies_constraint_*. | |
29351 | * config/alpha/predicates.md (add_operand): Likewise. | |
29352 | (sext_add_operand, addition_operation): Likewise. | |
29353 | ||
29354 | 2007-02-12 Dorit Nuzman <dorit@il.ibm.com> | |
29355 | ||
29356 | PR tree-optimization/29145 | |
29357 | * tree-data-ref.c (base_addr_differ_p): Make us more conservative | |
29358 | in our handling of restrict qualified pointers. | |
29359 | ||
29360 | 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29361 | ||
29362 | PR middle-end/7651 | |
29363 | * doc/invoke.texi (Wunused-value): Update description. | |
29364 | (Wextra): Delete item. | |
29365 | * opts.c (set_Wextra): Don't use the value of Wextra to set the | |
29366 | value of Wunused-value. | |
29367 | * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings. | |
29368 | (c_finish_stmt_expr): Don't check extra_warnings. | |
29369 | (emit_side_effect_warnings): The caller is responsible to check | |
29370 | warn_unused_value. | |
29371 | ||
29372 | 2007-02-11 Roger Sayle <roger@eyesopen.com> | |
29373 | Matt Thomas <matt@3am-software.com> | |
29374 | ||
29375 | * simplify-rtx.c (simplify_relational_operation_1): Correct typo. | |
29376 | ||
29377 | 2007-02-11 Roger Sayle <roger@eyesopen.com> | |
29378 | ||
29379 | * simplify-rtx.c (simplify_relational_operation_1): Optimize | |
29380 | comparisons of POPCOUNT against zero. | |
29381 | (simplify_const_relational_operation): Likewise. | |
29382 | ||
29383 | 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29384 | ||
29385 | * doc/invoke.texi (Wextra): Delete outdated paragraph. | |
29386 | ||
29387 | 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29388 | ||
29389 | * dwarf2out.c (root_type): Delete unused function. | |
29390 | ||
29391 | 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29392 | ||
29393 | * genattrtab.c (contained_in_p): Delete unused function. | |
29394 | (write_expr_attr_cache): Likewise. | |
29395 | ||
29396 | 2007-02-11 Jan Hubicka <jh@suse.cz> | |
29397 | ||
29398 | * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the | |
29399 | previous patch. | |
29400 | ||
29401 | 2007-02-11 Steven Bosscher <steven@gcc.gnu.org> | |
29402 | ||
29403 | * fwprop.c (try_fwprop_subst): Use set_unique_reg_note | |
29404 | to add the REG_EQ* note. | |
29405 | * see.c (see_merge_one_use_extension): Likewise. | |
29406 | * local-alloc.c (update_equiv_regs): Likewise. Also don't | |
29407 | turn REG_EQUAL notes into REG_EQUIV notes if the target | |
29408 | register may have more than one set. | |
29409 | * function.c (assign_parm_setup_reg): Use set_unique_reg_note. | |
29410 | * gcse.c (try_replace_reg): Likewise. | |
29411 | * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note. | |
29412 | * calls.c (fixup_tail_calls): Likewise. Abort if there is | |
29413 | more than one REG_EQUIV note. | |
29414 | * reload1.c (gen_reload): Use set_unique_reg_note. | |
29415 | ||
29416 | 2007-02-11 Uros Bizjak <ubizjak@gmail.com> | |
29417 | ||
29418 | * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define. | |
29419 | (ix86_builtin_conversion): New function. | |
29420 | ||
29421 | 2007-02-06 Mark Mitchell <mark@codesourcery.com> | |
29422 | ||
29423 | PR target/29487 | |
29424 | * tree.h (DECL_REPLACEABLE_P): New macro. | |
29425 | * except.c (set_nothrow_function_flags): Likewise. | |
29426 | ||
29427 | 2007-02-11 Tehila Meyzels <tehila@il.ibm.com> | |
29428 | Ira Rosen <irar@il.ibm.com> | |
29429 | Dorit Nuzman <dorit@il.ibm.com> | |
29430 | ||
29431 | * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook. | |
29432 | * targhooks.c (default_builtin_vectorized_conversion): New. | |
29433 | * targhooks.h (default_builtin_vectorized_function): New declaration. | |
29434 | * target.h (struct vectorize): Add builtin_conversion field. | |
29435 | * tree-vectorizer.h (type_conversion_vec_info_type): New enum | |
29436 | stmt_vec_info_type value. | |
29437 | (vectorizable_conversion): New declaration. | |
29438 | * tree-vect-analyze.c (vect_analyze_operations): Add | |
29439 | vectorizable_conversion call. | |
29440 | * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New. | |
29441 | * tree-vect-transform.c (vectorizable_conversion): New function. | |
29442 | (vect_transform_stmt): Add case for type_conversion_vec_info_type. | |
29443 | * tree-vect-generic.c (expand_vector_operations_1): Consider correct | |
29444 | mode. | |
29445 | * config/rs6000/rs6000.c (rs6000_builtin_conversion): New. | |
29446 | (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined. | |
29447 | (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX | |
29448 | or ALTIVEC_BUILTIN_VCFSX. | |
29449 | ||
29450 | 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
29451 | ||
29452 | PR target/30634 | |
29453 | * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero | |
29454 | CONST_DOUBLE and operand 0 is a hard register. | |
29455 | (movdi): For 64-bit target, remove code to force CONST_DOUBLE to | |
29456 | memory. Fail if operand 1 is a non-zero CONST_INT and operand 0 | |
29457 | is a hard floating-point register. | |
29458 | ||
29459 | 2007-02-10 Richard Henderson <rth@redhat.com> | |
29460 | Jakub Jelinek <jakub@redhat.com> | |
29461 | Alexandre Oliva <aoliva@redhat.com> | |
29462 | ||
29463 | * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c. | |
29464 | * builtin-types.def (BT_WORD): Make unsigned. | |
29465 | (BT_FN_VOID_PTR_WORD_WORD_PTR): New. | |
29466 | * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. | |
29467 | (BUILT_IN_EMUTLS_REGISTER_COMMON): New. | |
29468 | * c-decl.c (grokdeclarator): Don't error if !have_tls. | |
29469 | * c-parser.c (c_parser_omp_threadprivate): Likewise. | |
29470 | * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for | |
29471 | emulated tls. | |
29472 | * expr.c (emutls_var_address): New. | |
29473 | (expand_expr_real_1): Expand emulated tls. | |
29474 | (expand_expr_addr_expr_1): Likewise. | |
29475 | * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. | |
29476 | * output.h (emutls_finish): Declare. | |
29477 | * toplev.c (compile_file): Call it. | |
29478 | * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the | |
29479 | address before wrapping in CONST. | |
29480 | * varasm.c (emutls_htab, emutls_object_type): New. | |
29481 | (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. | |
29482 | (get_emutls_object_name, get_emutls_object_type): New. | |
29483 | (get_emutls_init_templ_addr, emutls_decl): New. | |
29484 | (emutls_common_1, emutls_finish): New. | |
29485 | (assemble_variable): When emulating tls, swap decls; generate | |
29486 | constructor for the emutls objects. | |
29487 | (do_assemble_alias): When emulating tls, swap decl and target name. | |
29488 | (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT | |
29489 | for emulated tls. | |
29490 | * varpool.c (decide_is_variable_needed): Look at force_output. | |
29491 | Recurse for emulated tls. | |
29492 | (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant | |
29493 | with decide_is_variable_needed. | |
29494 | * emutls.c: New file. | |
29495 | * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit | |
29496 | tls_object for real tls. | |
29497 | ||
29498 | 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org> | |
29499 | ||
29500 | PR rtl-optimization/29599 | |
29501 | * reload1.c (eliminate_regs_in_insn): Take the destination | |
29502 | mode into account when computing the offset. | |
29503 | ||
29504 | 2007-02-09 Stuart Hastings <stuart@apple.com> | |
29505 | Richard Henderson <rth@redhat.com> | |
29506 | ||
29507 | * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New. | |
29508 | * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New. | |
29509 | * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2, | |
29510 | fixuns_truncdfhi2): New. | |
29511 | (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse. | |
29512 | (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse. | |
29513 | (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse. | |
29514 | (floatunssidf2): Allow nonimmediate source. | |
29515 | * config/i386/sse.md (movdi_to_sse): New. | |
29516 | (vec_concatv2di): Drop '*'. | |
29517 | * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse, | |
29518 | ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse, | |
29519 | ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse): | |
29520 | New. | |
29521 | * config/i386/i386.c (ix86_expand_convert_uns_si_sse, | |
29522 | ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse, | |
29523 | ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse, | |
29524 | ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New. | |
29525 | (ix86_build_signbit_mask): Fix decl of v, refactor to call | |
29526 | ix86_build_const_vector. | |
29527 | (x86_emit_floatuns): Rewrite. | |
29528 | ||
29529 | 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
29530 | ||
29531 | * genautomata.c (longest_path_length): Delete unused function. | |
29532 | (struct state): Delete unused longest_path_length. | |
29533 | (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro. | |
29534 | (get_free_state): Delete unused. | |
29535 | ||
29536 | 2007-02-09 Jan Hubicka <jh@suse.cz> | |
29537 | ||
29538 | * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30. | |
29539 | * doc/invoke.texi (inline-unit-growth): Update default value. | |
29540 | ||
29541 | * Makefile.in (passes.o, ipa-inline.o): Add dependencies. | |
29542 | * cgraphbuild.c (build_cgraph_edges): Compute frequencies. | |
29543 | (rebuild_cgraph_edges): Likewise. | |
29544 | * cgraph.c (cgraph_set_call_stmt): Add new argument frequency. | |
29545 | (dump_cgraph_node): Dump frequencies. | |
29546 | (cgraph_clone_edge): Add frequency scales. | |
29547 | (cgraph_clone_node): Add freuqnecy. | |
29548 | * cgraph.h (cgraph_edge): Add freuqnecy argument. | |
29549 | (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants. | |
29550 | (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update. | |
29551 | * tree-pass.h (TODO_rebuild_frequencies): New constant. | |
29552 | * cgraphunit.c (verify_cgraph_node): Verify frequencies. | |
29553 | (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge. | |
29554 | (save_inline_function_body): Likewise. | |
29555 | * ipa-inline.c: inluce rtl.h | |
29556 | (cgraph_clone_inlined_nods): Update call of cgraph_clone_node. | |
29557 | (cgraph_edge_badness): Use frequencies. | |
29558 | (cgraph_decide_recursive_inlining): Update clonning. | |
29559 | (cgraph_decide_inlining_of_small_function): Dump frequency. | |
29560 | * predict.c (estimate_bb_frequencies): Export. | |
29561 | * predict.h (estimate_bb_frequencies): Declare. | |
29562 | * tree-inline.c (copy_bb): Watch overflows. | |
29563 | (expand_call_inline): Update call of cgraph_create_edge. | |
29564 | (optimize_inline_calls): Use TODO flags to update frequnecies. | |
29565 | * passes.h: Include predict.h | |
29566 | (init_optimization_passes): Move profile ahead. | |
29567 | (execute_function_todo): Handle TODO_rebuild_frequencies. | |
29568 | ||
29569 | 2007-02-09 Roger Sayle <roger@eyesopen.com> | |
29570 | ||
29571 | * config/alpha/alpha.c (emit_insxl): Force the first operand of | |
29572 | the insbl or inswl pattern into a register. | |
29573 | ||
29574 | 2007-02-09 Roger Sayle <roger@eyesopen.com> | |
29575 | ||
29576 | * config/ia64/ia64.md (bswapdi2): New define_insn. | |
29577 | ||
29578 | 2007-02-09 Richard Henderson <rth@redhat.com> | |
29579 | ||
29580 | * config/i386/constraints.md (Ym): New constraint. | |
29581 | * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints. | |
29582 | (movdi_1_rex64): Split sse and xmm general register moves from | |
29583 | memory move alternatives. Use conditional register constraints. | |
29584 | (movsf_1, movdf_integer): Likewise. | |
29585 | (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise. | |
29586 | (movdf_integer_rex64): New. | |
29587 | (pushsf_rex64): Fix output constraints. | |
29588 | * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi. | |
29589 | (sse2_stored): Likewise. | |
29590 | (sse2_storeq_rex64): New. | |
29591 | * config/i386/i386.c (x86_inter_unit_moves): Enable for not | |
29592 | amd and not generic. | |
29593 | (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES | |
29594 | for optimize_size. Remove SF/DFmode hack. | |
29595 | ||
29596 | 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> | |
29597 | ||
29598 | * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10. | |
29599 | (bit_SSE4a): New. | |
29600 | ||
29601 | 2007-02-09 Nathan Sidwell <nathan@codesourcery.com> | |
29602 | Richard Sandiford <richard@codesourcery.com> | |
29603 | ||
29604 | * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*) | |
29605 | (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu. | |
29606 | (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add | |
29607 | m68k/t-mlib to tmake_file. | |
29608 | (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well. | |
29609 | (m68k*-*-*): Use --with-arch to pick a default for --with-cpu. | |
29610 | (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch. | |
29611 | Allow it to be cf or m68k. Set m68k_arch_family. If that | |
29612 | variable is not empty, add t-$m68k_arch_family to tmake_file. | |
29613 | Add t-mlibs to tmake_file. | |
29614 | * doc/install.texi: Document --with-arch=m68k and --with-arch=cf. | |
29615 | * config/m68k/t-cf: New file. | |
29616 | * config/m68k/t-m68k: Likewise. | |
29617 | * config/m68k/t-mlibs: Likewise. | |
29618 | * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) | |
29619 | (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. | |
29620 | (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. | |
29621 | * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) | |
29622 | (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC): | |
29623 | Delete. | |
29624 | * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete. | |
29625 | (INSTALL_LIBGCC): Delete. | |
29626 | (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. | |
29627 | * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) | |
29628 | (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. | |
29629 | (M68K_MLIB_CPU): Define. | |
29630 | * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) | |
29631 | (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. | |
29632 | (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define. | |
29633 | ||
29634 | 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz> | |
29635 | Richard Guenther <rguenther@suse.de> | |
29636 | ||
29637 | PR middle-end/23361 | |
29638 | * fold-const.c (fold_comparison): Handle obfuscated comparisons | |
29639 | against INT_MIN/INT_MAX. | |
29640 | * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump | |
29641 | file if a loop is removed. | |
29642 | ||
29643 | 2007-02-09 Joseph Myers <joseph@codesourcery.com> | |
29644 | ||
29645 | * calls.c (store_one_arg): Pass correct alignment to | |
29646 | emit_push_insn for non-BLKmode values. | |
29647 | * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an | |
29648 | unaligned stack slot via a suitably aligned slot. | |
29649 | ||
29650 | 2007-02-08 DJ Delorie <dj@redhat.com> | |
29651 | ||
29652 | * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence | |
29653 | warnings. | |
29654 | (legal_subregs): Use unsigned char, make const. | |
29655 | (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables. | |
29656 | ||
29657 | 2007-02-08 Paul Brook <paul@codesourcery.com> | |
29658 | ||
29659 | * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no | |
29660 | special interworking needed. | |
29661 | ||
29662 | 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com> | |
29663 | ||
29664 | * config/i386/xmmintrin.h: Make inclusion of emmintrin.h | |
29665 | conditional to __SSE2__. | |
29666 | (Entries below should have been added to first ChangeLog | |
29667 | entry for amdfam10 dated 2007-02-05) | |
29668 | * config/i386/emmintrin.h: Generate #error if __SSE2__ is not | |
29669 | defined. | |
29670 | * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not | |
29671 | defined. | |
29672 | * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not | |
29673 | defined. | |
29674 | ||
29675 | 2007-02-08 DJ Delorie <dj@redhat.com> | |
29676 | ||
29677 | * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New. | |
29678 | * config/m32c/m32c.c (legal_subregs): New. | |
29679 | (m32c_illegal_subreg_p): New. | |
29680 | * config/m32c/predicates.md (m32c_any_operand): Use it to reject | |
29681 | unsupported subregs of hard regs. | |
29682 | ||
29683 | 2007-02-08 Jan Hubicka <jh@suse.cz> | |
29684 | ||
29685 | * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with | |
29686 | the same one; always update histograms. | |
29687 | ||
29688 | 2007-02-08 Diego Novillo <dnovillo@redhat.com> | |
29689 | ||
29690 | * passes.c (init_optimization_passes): Tidy comment. | |
29691 | ||
29692 | 2007-02-08 Roger Sayle <roger@eyesopen.com> | |
29693 | ||
29694 | * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can | |
29695 | strip zero_extend, bswap and rotates from POCOUNT's argument. | |
29696 | <PARITY>: Likewise, we can strip not, bswap, sign_extend, | |
29697 | zero_extend and rotates from PARITY's argument. | |
29698 | <BSWAP>: A byte-swap followed by a byte-swap is an identity. | |
29699 | (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap | |
29700 | of an integer constant at compile-time. | |
29701 | ||
29702 | 2007-02-08 Diego Novillo <dnovillo@redhat.com> | |
29703 | ||
29704 | PR 30562 | |
29705 | * tree-flow.h (struct var_ann_d): Remove field 'is_used'. | |
29706 | Update all users. | |
29707 | * tree-ssa-alias.c (compute_is_aliased): Remove. Update all | |
29708 | users. | |
29709 | (init_alias_info): | |
29710 | * tree-ssa-live.c (remove_unused_locals): Do not remove | |
29711 | TREE_ADDRESSABLE variables. | |
29712 | * tree-ssa-structalias.c (compute_points_to_sets): Tidy. | |
29713 | * tree-ssa-operands.c (add_virtual_operand): Remove argument | |
29714 | FOR_CLOBBER. Update all users. | |
29715 | If VAR has an associated alias set, add a virtual operand for | |
29716 | it if no alias is found to conflict with the memory reference. | |
29717 | ||
29718 | 2007-02-07 Jan Hubicka <jh@suse.cz> | |
29719 | Robert Kidd <rkidd@crhc.uiuc.edu> | |
29720 | ||
29721 | * value-prof.c (visit_hist, free_hist): Return 1 instead of 0. | |
29722 | ||
29723 | 2007-02-07 Ian Lance Taylor <iant@google.com> | |
29724 | ||
29725 | * lower-subreg.c (simple_move): Reject PARTIAL_INT modes. | |
29726 | ||
29727 | 2007-02-07 Roger Sayle <roger@eyesopen.com> | |
29728 | ||
29729 | * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2, | |
29730 | parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack, | |
29731 | tablejumpdi, movsi_to_cr_one): Remove constraints from | |
29732 | define_expand's match_operands. | |
29733 | ||
29734 | 2007-02-07 Roger Sayle <roger@eyesopen.com> | |
29735 | ||
29736 | * global.c (compute_regsets): Move declatation of "i" inside of | |
29737 | #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure. | |
29738 | ||
29739 | 2007-02-07 Jakub Jelinek <jakub@redhat.com> | |
29740 | ||
29741 | PR c++/30703 | |
29742 | * gimplify.c (gimplify_scan_omp_clauses): Remove special casing | |
29743 | of INDIRECT_REF <RESULT_DECL>. | |
29744 | ||
29745 | * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2. | |
29746 | ||
29747 | 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com> | |
29748 | Kaz Kojima <kkojima@gcc.gnu.org> | |
29749 | ||
29750 | PR target/29746 | |
29751 | * config/sh/sh.c (expand_cbranchdi4): Use scratch register | |
29752 | properly. | |
29753 | (sh_initialize_trampoline): Add parentheses to avoid a warning. | |
29754 | ||
29755 | 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz> | |
29756 | ||
29757 | * doc/loop.texi: Document possibility not to perform disambiguation | |
29758 | of loops with multiple latches. | |
29759 | * cfgloopmanip.c (alp_enum_p): Removed. | |
29760 | (add_loop): Handle subloops. Use get_loop_body_with_size. | |
29761 | (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader. | |
29762 | * cfghooks.c (redirect_edge_and_branch_force): Set dominator for | |
29763 | the new forwarder block. | |
29764 | (make_forwarder_block): Only call new_bb_cbk if it is not NULL. | |
29765 | Handle the case latch is NULL. | |
29766 | * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg | |
29767 | modifications when marking loop exits. | |
29768 | * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot | |
29769 | be modified. | |
29770 | * loop-init.c (loop_optimizer_init): Do not modify cfg. Call | |
29771 | disambiguate_loops_with_multiple_latches. | |
29772 | * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators | |
29773 | before fix_loop_structure. | |
29774 | * cfgloop.c: Include pointer-set.h and output.h. | |
29775 | (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE, | |
29776 | update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed. | |
29777 | (get_loop_latch_edges, find_subloop_latch_edge_by_profile, | |
29778 | find_subloop_latch_edge_by_ivs, find_subloop_latch_edge, | |
29779 | mfb_redirect_edges_in_set, form_subloop, merge_latch_edges, | |
29780 | disambiguate_multiple_latches, get_loop_body_with_size, | |
29781 | disambiguate_loops_with_multiple_latches): New functions. | |
29782 | (flow_loop_dump): Dump multiple latch edges. | |
29783 | (flow_loop_nodes_find): Handle loops with multiple latches. | |
29784 | (flow_loops_find): Ditto. Do not call canonicalize_loop_headers. | |
29785 | (glb_enum_p): Modified. | |
29786 | (get_loop_body): Use get_loop_body_with_size. | |
29787 | * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag. | |
29788 | (AVOID_CFG_MODIFICATIONS): New constant. | |
29789 | (disambiguate_loops_with_multiple_latches, add_loop, | |
29790 | get_loop_body_with_size): Declare. | |
29791 | * Makefile.in (cfgloop.o): Add pointer-set.h and output.h. | |
29792 | ||
29793 | 2007-02-06 Seongbae Park <seongbae.park@gmail.com> | |
29794 | ||
29795 | PR inline-asm/28686 | |
29796 | * global.c (compute_regsets): New function. | |
29797 | (global_alloc): Refactored ELIMINABLE_REGSET | |
29798 | and NO_GLOBAL_ALLOC_REGS computation out. | |
29799 | (rest_of_handle_global_alloc): Call compute_regsets() | |
29800 | for non-optimizing case. | |
29801 | ||
29802 | 2007-02-06 Richard Henderson <rth@redhat.com> | |
29803 | ||
29804 | * config/i386/constraints.md (Y2): Rename from Y. | |
29805 | (Yi): New constraint. | |
29806 | * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger, | |
29807 | pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32, | |
29808 | zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2. | |
29809 | (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed, | |
29810 | truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse, | |
29811 | fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse, | |
29812 | floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed, | |
29813 | absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse, | |
29814 | fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x. | |
29815 | * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64, | |
29816 | mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal, | |
29817 | vec_extractv2si_1): Change Y constraints to Y2. | |
29818 | * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si, | |
29819 | vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di): | |
29820 | Change Y constraints to Y2. | |
29821 | (sse2_loadld): Change Y constraints to x. | |
29822 | ||
29823 | 2007-02-06 Roger Sayle <roger@eyesopen.com> | |
29824 | ||
29825 | * config/rs6000/rs6000.md (popcount<mode>2): Rewrite. | |
29826 | (parity<mode>2): New define_expand using rs6000_emit_parity. | |
29827 | * config/rs6000/rs6000.c (rs6000_emit_popcount, | |
29828 | rs6000_emit_parity): New functions. | |
29829 | * config/rs6000/rs6000-protos.h (rs6000_emit_popcount, | |
29830 | rs6000_emit_parity): Prototype here. | |
29831 | ||
29832 | 2007-02-06 Ian Lance Taylor <iant@google.com> | |
29833 | ||
29834 | * lower-subreg.c (simple_move_operand): Reject CONST. | |
29835 | (resolve_clobber): Call validate_change rather than directly | |
29836 | assigning to XEXP (pat, 0). | |
29837 | ||
ad41bd84 | 29838 | 2007-02-06 Paolo Bonzini <bonzini@gnu.org> |
f13d199c RB |
29839 | |
29840 | * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency. | |
29841 | (tree-ssa-reassoc.o): Add pointer-set.h dependency. | |
29842 | (tree-cfg.o): Remove hashtab.h dependency. | |
29843 | ||
29844 | * tree-ssa-loop-ivopts.c: Include pointer-set.h. | |
29845 | (struct ivopts_data): Change niters to pointer_map_t. | |
29846 | (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete. | |
29847 | (niter_for_exit): Create pointer_map on demand. Change for | |
29848 | pointer_map API. | |
29849 | (tree_ssa_iv_optimize_init): Initialize data->niters to NULL. | |
29850 | (free_loop_data): Destroy data->niters if created and reset field. | |
29851 | (tree_ssa_iv_optimize_finalize): Don't delete data->niters here. | |
29852 | (tree_ssa_iv_optimize_loop): Check for presence of stale data. | |
29853 | ||
29854 | * tree-ssa-reassoc.c: Include pointer-set.h. | |
29855 | (bb_rank): Change to long *. | |
29856 | (operand_rank): Change to pointer_map_t. | |
29857 | (find_operand_rank): Return long, -1 if not found. Declare as inline. | |
29858 | (insert_operand_rank): Accept long. | |
29859 | (operand_entry_hash, operand_entry_eq): Remove. | |
29860 | (get_rank): Return long. Adjust for changes above. | |
29861 | (init_reassoc): Change rank type to long. Adjust creation of bb_rank | |
29862 | and operand_rank. | |
29863 | (fini_reassoc): Delete operand_rank with pointer_map_destroy. | |
29864 | ||
29865 | * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map. | |
29866 | (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete. | |
29867 | (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument | |
29868 | is not NULL. | |
29869 | (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t | |
29870 | directly since it cannot be NULL. | |
29871 | (get_vi_for_tree): Rewrite for pointer_map API. | |
29872 | (find_what_p_points_to): Adjust for change to lookup_vi_for_tree. | |
29873 | (init_alias_vars): Create vi_for_tree as pointer_map. | |
29874 | (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy. | |
29875 | ||
29876 | * tree-cfg.c: Don't include hashtab.h. | |
29877 | (edge_to_cases): Declare as pointer_map. | |
29878 | (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq): | |
29879 | Delete. | |
29880 | (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback. | |
29881 | (start_recording_case_labels): Create edge_to_cases as pointer_map. | |
29882 | (end_recoding_case_labels): Cleanup edge_to_cases manually before | |
29883 | destroying it. | |
29884 | (record_switch_edge): Delete. | |
29885 | (get_cases_for_edge): Adjust for pointer_map API, inline | |
29886 | record_switch_edge (rewritten for new API), remove goto. | |
29887 | ||
ad41bd84 | 29888 | 2007-02-06 Paolo Bonzini <bonzini@gnu.org> |
f13d199c RB |
29889 | |
29890 | * Makefile.in (tree-nested.o): Add pointer-set.h dependency. | |
29891 | * tree-nested.c: Include pointer-set.h. | |
29892 | (var_map_elt, var_map_eq, var_map_hash): Delete. | |
29893 | (struct nesting_info): Remove GTY marker. Change the two htab_t's | |
29894 | to pointer_map_t's. | |
29895 | (nesting_info_bitmap_obstack): New. | |
29896 | (lookup_field_for_decl): Adjust for pointer_map API. | |
29897 | (lookup_tramp_for_decl): Adjust for pointer_map API. | |
29898 | (get_nonlocal_debug_decl): Adjust for pointer_map API. | |
29899 | (get_local_debug_decl): Adjust for pointer_map API. | |
29900 | (convert_nl_goto_reference): Adjust for pointer_map API. | |
29901 | (convert_nl_goto_receiver): Adjust for pointer_map API. | |
29902 | (create_nesting_tree): Create outside GGC space. Create bitmap on | |
29903 | the new obstack. Create field_map and var_map as pointer_maps. | |
29904 | (free_nesting_tree): Adjust for changes to create_nesting_tree. | |
29905 | (root): Delete. | |
29906 | (lower_nested_functions): Move root here, no need to NULL it. | |
29907 | Initialize and release the obstack. | |
29908 | ||
29909 | 2007-02-06 Paolo Bonzini <bonzini@gnu.org> | |
29910 | ||
29911 | * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): | |
29912 | Remove prototypes and make them non-static. | |
29913 | (struct tree_int_map): Remove. | |
29914 | * tree.h (struct tree_int_map): Move here, turning TO into an | |
29915 | unsigned int. | |
29916 | (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare. | |
29917 | ||
29918 | * tree.h (TREE_COMPLEXITY): Remove. | |
29919 | (struct tree_exp): Remove complexity field. | |
29920 | * tree.c (build1_stat): Don't set it. | |
29921 | ||
29922 | 2007-02-06 Dorit Nuzman <dorit@il.ibm.com> | |
29923 | Victor Kaplansky <victork@il.ibm.com> | |
29924 | ||
29925 | * tree-vectorizer.c (vect_is_simple_use): Support induction. | |
29926 | (vect_is_simple_reduction): Support reduction with induction as | |
29927 | one of the operands. | |
29928 | (vect_is_simple_iv_evolution): Fix formatting. | |
29929 | * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix | |
29930 | formatting. Don't mark induction phis for vectorization. | |
29931 | (vect_analyze_scalar_cycles): Analyze all inductions, then reductions. | |
29932 | * tree-vect-transform.c (get_initial_def_for_induction): New function. | |
29933 | (vect_get_vec_def_for_operand): Support induction. | |
29934 | (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for | |
29935 | induction case. | |
29936 | (vectorizable_reduction): Support reduction with induction as one of | |
29937 | the operands. | |
29938 | (vectorizable_type_demotion): Use def-type of stmt argument rather | |
29939 | than dummy def-type. | |
29940 | ||
29941 | * tree-ssa-loop.c (gate_scev_const_prop): Return the value of | |
29942 | flag_tree_scev_cprop. | |
29943 | * common.opt (tree-scev-cprop): New flag. | |
29944 | ||
29945 | * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in | |
29946 | call to vect_get_new_vect_var. | |
29947 | ||
29948 | 2007-02-06 Ira Rosen <irar@il.ibm.com> | |
29949 | ||
29950 | * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that | |
29951 | vectype is not NULL. | |
29952 | (vect_pattern_recog_1): Likewise. | |
29953 | ||
29954 | 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
29955 | ||
29956 | * fold-const.c (negate_expr_p): Handle CONJ_EXPR. | |
29957 | (fold_negate_expr): Likewise. | |
29958 | ||
29959 | 2007-02-05 Alexandre Oliva <aoliva@redhat.com> | |
29960 | ||
29961 | PR debug/30189 | |
29962 | * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE | |
29963 | even if cv-qualification is the same. | |
29964 | ||
29965 | 2007-02-05 Geoffrey Keating <geoffk@apple.com> | |
29966 | ||
29967 | * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call | |
29968 | __enable_execute_stack on completion. | |
29969 | ||
29970 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
29971 | ||
29972 | * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8, | |
29973 | athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov, | |
29974 | athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul, | |
29975 | athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn, | |
29976 | athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8, | |
29977 | athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load, | |
29978 | athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8, | |
29979 | athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10. | |
29980 | ||
29981 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
29982 | ||
29983 | * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse, | |
29984 | cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387, | |
29985 | swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse, | |
29986 | fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse, | |
29987 | x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed, | |
29988 | floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse, | |
29989 | floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1, | |
29990 | mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn, | |
29991 | umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn, | |
29992 | umuldi3_highpart_rex64, umulsi3_highpart_insn, | |
29993 | umulsi3_highpart_zext, smuldi3_highpart_rex64, | |
29994 | smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld, | |
29995 | x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse, | |
29996 | sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387, | |
29997 | sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387, | |
29998 | sqrtextenddfxf2_i387): Added amdfam10_decode. | |
29999 | ||
30000 | * config/i386/athlon.md (athlon_idirect_amdfam10, | |
30001 | athlon_ivector_amdfam10, athlon_idirect_load_amdfam10, | |
30002 | athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10, | |
30003 | athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10, | |
30004 | athlon_ivector_store_amdfam10): New define_insn_reservation. | |
30005 | (athlon_idirect_loadmov, athlon_idirect_movstore): Added | |
30006 | amdfam10. | |
30007 | ||
30008 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30009 | ||
30010 | * config/i386/athlon.md (athlon_call_amdfam10, | |
30011 | athlon_pop_amdfam10, athlon_lea_amdfam10): New | |
30012 | define_insn_reservation. | |
30013 | (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8, | |
30014 | athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI, | |
30015 | athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10. | |
30016 | ||
30017 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30018 | ||
30019 | * config/i386/athlon.md (athlon_sseld_amdfam10, | |
30020 | athlon_mmxld_amdfam10, athlon_ssest_amdfam10, | |
30021 | athlon_mmxssest_short_amdfam10): New define_insn_reservation. | |
30022 | ||
30023 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30024 | ||
30025 | * config/i386/athlon.md (athlon_sseins_amdfam10): New | |
30026 | define_insn_reservation. | |
30027 | * config/i386/i386.md (sseins): Added sseins to define_attr type | |
30028 | and define_attr unit. | |
30029 | * config/i386/sse.md: Set type attribute to sseins for insertq | |
30030 | and insertqi. | |
30031 | ||
30032 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30033 | ||
30034 | * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10, | |
30035 | ssecmpvector_load_amdfam10, ssecmpvector_amdfam10, | |
30036 | ssecomi_load_amdfam10, ssecomi_amdfam10, | |
30037 | sseaddvector_load_amdfam10, sseaddvector_amdfam10): New | |
30038 | define_insn_reservation. | |
30039 | (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10. | |
30040 | ||
30041 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30042 | ||
30043 | * config/i386/athlon.md (cvtss2sd_load_amdfam10, | |
30044 | cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10, | |
30045 | cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10, | |
30046 | cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10, | |
30047 | cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10, | |
30048 | cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New | |
30049 | define_insn_reservation. | |
30050 | ||
30051 | * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si, | |
30052 | cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq, | |
30053 | cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq, | |
30054 | cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd, | |
30055 | cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute. | |
30056 | ||
30057 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30058 | ||
30059 | * config/i386/athlon.md (athlon_ssedivvector_amdfam10, | |
30060 | athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10, | |
30061 | athlon_ssemulvector_load_amdfam10): New define_insn_reservation. | |
30062 | (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul, | |
30063 | athlon_ssemul_load_k8): Added amdfam10. | |
30064 | ||
30065 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30066 | ||
30067 | * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro. | |
30068 | (x86_sse_unaligned_move_optimal): New variable. | |
30069 | ||
30070 | * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for | |
30071 | m_AMDFAM10. | |
30072 | (ix86_expand_vector_move_misalign): Add code to generate movupd/movups | |
30073 | for unaligned vector SSE double/single precision loads for AMDFAM10. | |
30074 | ||
30075 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30076 | ||
30077 | * config/i386/i386.h (TARGET_AMDFAM10): New macro. | |
30078 | (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10. | |
30079 | Define TARGET_CPU_DEFAULT_amdfam10. | |
30080 | (TARGET_CPU_DEFAULT_NAMES): Add amdfam10. | |
30081 | (processor_type): Add PROCESSOR_AMDFAM10. | |
30082 | ||
30083 | * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match | |
30084 | processor_type in config/i386/i386.h. | |
30085 | Enable imul peepholes for TARGET_AMDFAM10. | |
30086 | ||
30087 | * config.gcc: Add support for --with-cpu option for amdfam10. | |
30088 | ||
30089 | * config/i386/i386.c (amdfam10_cost): New variable. | |
30090 | (m_AMDFAM10): New macro. | |
30091 | (m_ATHLON_K8_AMDFAM10): New macro. | |
30092 | (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, | |
30093 | x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop, | |
30094 | x86_promote_QImode, x86_integer_DFmode_moves, | |
30095 | x86_partial_reg_dependency, x86_memory_mismatch_stall, | |
30096 | x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, | |
30097 | x86_sse_partial_reg_dependency, x86_sse_typeless_stores, | |
30098 | x86_use_ffreep, x86_use_incdec, x86_four_jump_limit, | |
30099 | x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns): | |
30100 | Enable/disable for amdfam10. | |
30101 | (override_options): Add amdfam10_cost to processor_target_table. | |
30102 | Set up PROCESSOR_AMDFAM10 for amdfam10 entry in | |
30103 | processor_alias_table. | |
30104 | (ix86_issue_rate): Add PROCESSOR_AMDFAM10. | |
30105 | (ix86_adjust_cost): Add code for amdfam10. | |
30106 | ||
30107 | 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> | |
30108 | ||
30109 | * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm) | |
30110 | instruction set feature flag. Add new (-mpopcnt) flag for popcnt | |
30111 | instruction. Add new SSE4A (-msse4a) instruction set feature flag. | |
30112 | * config/i386/i386.h: Add builtin definition for SSE4A. | |
30113 | * config/i386/i386.md: Add support for ABM instructions | |
30114 | (popcnt and lzcnt). | |
30115 | * config/i386/sse.md: Add support for SSE4A instructions | |
30116 | (movntss, movntsd, extrq, insertq). | |
30117 | * config/i386/i386.c: Add support for ABM and SSE4A builtins. | |
30118 | Add -march=amdfam10 flag. | |
30119 | * config/i386/ammintrin.h: Add support for SSE4A intrinsics. | |
30120 | * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt | |
30121 | and amdfam10. | |
30122 | * doc/extend.texi: Add documentation for SSE4A builtins. | |
30123 | ||
30124 | 2007-02-05 Bob Wilson <bob.wilson@acm.org> | |
30125 | ||
30126 | * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs. | |
30127 | ||
30128 | 2007-02-05 Richard Guenther <rguenther@suse.de> | |
30129 | ||
30130 | * tree-vectorizer.h (vectorizable_function): Add argument type | |
30131 | argument, change return type. | |
30132 | * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller. | |
30133 | * tree-vect-transform.c (vectorizable_function): Handle extra | |
30134 | argument, return vectorized function decl. | |
30135 | (build_vectorized_function_call): Remove. | |
30136 | (vectorizable_call): Handle calls with result and argument types | |
30137 | differing. Handle loop vectorization factor correctly. | |
30138 | * targhooks.c (default_builtin_vectorized_function): Adjust for | |
30139 | extra argument. | |
30140 | * targhooks.h (default_builtin_vectorized_function): Likewise. | |
30141 | * target.h (builtin_vectorized_function): Add argument type | |
30142 | argument. | |
30143 | * config/i386/i386.c (ix86_builtin_vectorized_function): Handle | |
30144 | extra argument, allow vectorizing of lrintf. | |
30145 | * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust | |
30146 | documentation of target hook. | |
30147 | ||
30148 | 2007-02-05 Hans-Peter Nilsson <hp@axis.com> | |
30149 | ||
30150 | PR target/30665 | |
30151 | * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu") | |
30152 | ("*andhi_clear", andu (casesi+45)): For size-changed operand where | |
30153 | memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P. | |
30154 | ||
30155 | 2007-02-05 Roger Sayle <roger@eyesopen.com> | |
30156 | ||
30157 | * fold-const.c (fold_unary) <REAL_PART>: Test for availability of | |
30158 | BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS. | |
30159 | <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN. | |
30160 | * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS | |
30161 | before canonicalizing sincos to cexpi. | |
30162 | (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi. | |
30163 | ||
30164 | 2007-02-05 Roger Sayle <roger@eyesopen.com> | |
30165 | ||
30166 | * config/alpha/alpha.c (alpha_add_builtins): New Helper function. | |
30167 | Set TREE_READONLY and TREE_NOTHROW directly, not via attributes. | |
30168 | (alpha_init_builtins): Use alpha_add_builtins to process tables. | |
30169 | ||
30170 | 2007-02-05 Roger Sayle <roger@eyesopen.com> | |
30171 | ||
30172 | * mips-tfile.c (initialize_init_file): Correct endianness test. | |
30173 | ||
30174 | 2007-02-05 Kazu Hirata <kazu@codesourcery.com> | |
30175 | ||
30176 | * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use | |
30177 | the 'y' constraint. | |
30178 | ||
30179 | 2007-02-05 Richard Sandiford <richard@codesourcery.com> | |
30180 | ||
30181 | * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register | |
30182 | saves in a PARALLEL before the register assignments. | |
30183 | ||
30184 | 2007-02-05 Richard Sandiford <richard@codesourcery.com> | |
30185 | ||
30186 | * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require | |
30187 | DWARF_FRAME_RETURN_COLUMN to be a general register. | |
30188 | * dwarf2out.c (init_return_column_size): New function, split from... | |
30189 | (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both | |
30190 | DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN | |
30191 | to be nongeneral registers. | |
30192 | * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and | |
30193 | integer registers. | |
30194 | (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define. | |
30195 | (DWARF_ALT_FRAME_RETURN_COLUMN): Define. | |
30196 | ||
30197 | 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz> | |
30198 | ||
30199 | * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR. | |
30200 | ||
30201 | 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz> | |
30202 | ||
30203 | * cfgloopmanip.c (loop_delete_branch_edge): Removed. | |
30204 | (remove_path): Use can_remove_branch_p and remove_branch instead | |
30205 | of loop_delete_branch_edge. | |
30206 | * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function. | |
30207 | (tree_transform_and_unroll_loop): Remove dead branches immediately. | |
30208 | Update profile using scale_dominated_blocks_in_loop. | |
30209 | * cfghooks.c (can_remove_branch_p, remove_branch): New functions. | |
30210 | * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p. | |
30211 | (can_remove_branch_p, remove_branch): Declare. | |
30212 | * tree-cfg.c (tree_can_remove_branch_p): New function. | |
30213 | (tree_cfg_hooks): Add tree_can_remove_branch_p. | |
30214 | * cfgrtl.c (rtl_can_remove_branch_p): New function. | |
30215 | (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p. | |
30216 | ||
30217 | 2007-02-05 Jan Hubicka <jh@suse.cz> | |
30218 | ||
30219 | PR middle-end/30696 | |
30220 | * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed | |
30221 | nodes in cgraph, don't remove offline copy of the function. | |
30222 | ||
30223 | 2007-02-04 Jan Hubicka <jh@suse.cz> | |
30224 | ||
30225 | * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into | |
30226 | vectors might cause maybe_lookup_element_for_expr to be called | |
30227 | on non-sra-candidate. | |
30228 | ||
30229 | 2007-02-04 Kazu Hirata <kazu@codesourcery.com> | |
30230 | ||
30231 | * config/bfin/bfin-modes.def, config/bfin/bfin.c, | |
30232 | config/bfin/bfin.md, config/bfin/predicates.md: Follow | |
30233 | spelling conventions. | |
30234 | ||
30235 | 2007-02-04 Richard Guenther <rguenther@suse.de> | |
30236 | ||
30237 | PR middle-end/30636 | |
30238 | * fold-const.c (try_move_mult_to_index): Make sure to not | |
30239 | overflow one dimension of a multi-dimensional array access. | |
30240 | ||
30241 | 2007-02-04 Jan Hubicka <jh@suse.cz> | |
30242 | ||
30243 | * passes.c (init_optimization_passes): Reindent. | |
30244 | ||
30245 | 2007-02-04 Jan Hubicka <jh@suse.cz> | |
30246 | Eric Botcazou <ebotcazou@adacore.com> | |
30247 | ||
30248 | * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to... | |
30249 | (execute_fixup_cfg): Break out the abnormal goto code. | |
30250 | * tree-inline.c (has_abnormal_outgoing_edge_p): ...here. | |
30251 | (make_nonlocal_label_edges): Move here from execute_fixup_cfg. | |
30252 | (optimize_inline_calls): Call make_nonlocal_label_edges. | |
30253 | ||
30254 | 2007-02-04 Jan Hubicka <jh@suse.cz> | |
30255 | ||
30256 | * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return | |
30257 | true when something was changed. | |
30258 | (rename_ssa_copies): When something was changed, do | |
30259 | TODO_remove_unused_locals. | |
30260 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value): | |
30261 | add TODO_remove_unused_locals when instruction was removed. | |
30262 | ||
30263 | 2007-02-04 Jan Hubicka <jh@suse.cz> | |
30264 | ||
30265 | * ipa-inline.c (try_inline): Improve debug output; work on already | |
30266 | inline edges too. | |
30267 | (cgraph_decide_inlining_incrementally): Indent; improve debug output; | |
30268 | call try_inline for already inlined edges too when flattening; | |
30269 | inline also functions that make callee growth but overall unit size | |
30270 | reduce. | |
30271 | ||
30272 | 2007-02-04 Kazu Hirata <kazu@codesourcery.com> | |
30273 | ||
30274 | * config/m32c/bitops.md, config/m32c/jump.md, | |
30275 | config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c, | |
30276 | config/m32r/m32r.h, config/m32r/m32r.md, | |
30277 | config/m32r/predicates.md, config/m68hc11/larith.asm, | |
30278 | config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, | |
30279 | config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md, | |
30280 | config/mips/mips-protos.h, config/mips/mips.c, | |
30281 | config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S, | |
30282 | config/mn10300/mn10300.h, config/mn10300/predicates.md, | |
30283 | config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow | |
30284 | spelling conventions. | |
30285 | ||
30286 | * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md: | |
30287 | Follow spelling conventions. | |
30288 | ||
30289 | 2007-02-03 Douglas Gregor <doug.gregor@gmail.com> | |
30290 | ||
30291 | * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't | |
30292 | warn about C++0x compatibility. | |
30293 | ||
30294 | 2007-02-04 Kazu Hirata <kazu@codesourcery.com> | |
30295 | ||
30296 | * config/h8300/h8300.c, config/h8300/h8300.h, | |
30297 | config/h8300/h8300.md: Follow spelling conventions. | |
30298 | ||
30299 | 2007-02-03 Uros Bizjak <ubizjak@gmail.com> | |
30300 | ||
30301 | PR middle-end/30667 | |
30302 | * combine.c (try_combine): Do not substitute source operand | |
30303 | with constants wider than 2 * HOST_BITS_PER_WIDE_INT. | |
30304 | ||
30305 | 2007-02-03 Jan Hubicka <jh@suse.cz> | |
30306 | ||
30307 | PR gcov-profile/30650 | |
30308 | * value-prof.c (stringop_block_profile): Fix handling of size counter; | |
30309 | do not divide by zero for never executed counters. | |
30310 | (tree_find_values_to_profile): Fix counters. | |
30311 | * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments. | |
30312 | ||
30313 | 2007-02-03 Ian Lance Taylor <iant@google.com> | |
30314 | ||
30315 | * lower-subreg.c (simple_move_operand): New static function, | |
30316 | broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH | |
30317 | operands. | |
30318 | (simple_move): Call simple_move_operand. | |
30319 | (find_decomposable_subregs): Add special handling of MEMs. | |
30320 | (can_decompose_p): Rename from cannot_decompose_p. Reverse | |
30321 | meaning of return value. If we see a hard register, test whether | |
30322 | it can store a word_mode value. Change all callers. | |
30323 | ||
30324 | 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
30325 | ||
30326 | * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New | |
30327 | ftrapv insns and expanders. | |
30328 | (subdi3): Change define_expand operand 1 to arith11_operand, and | |
30329 | operand 2 to reg_or_0_operand. Change constraints of 64-bit insn | |
30330 | pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to | |
30331 | handle 11-bit constants and reg_or_0 operands in operands 1 and 2, | |
30332 | respectively. | |
30333 | ||
30334 | PR middle-end/30174 | |
30335 | * varasm.c (notice_global_symbol): Treat global objects as weak when | |
30336 | flag_shlib is true. | |
30337 | ||
30338 | 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
30339 | ||
30340 | * emit-rtl.c (dconstpi): Delete. | |
30341 | (dconstsqrt2): New. | |
30342 | (init_emit_once): Delete dconstpi and init dconstsqrt2. | |
30343 | * real.h (dconstpi): Delete. | |
30344 | (dconstsqrt2): New. | |
30345 | * builtins.c (fold_builtin_cabs): Use dconstsqrt2. | |
30346 | (fold_builtin_hypot): Likewise. | |
30347 | ||
30348 | 2007-02-03 Tom Tromey <tromey@redhat.com> | |
30349 | ||
30350 | PR driver/30246 | |
30351 | * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3, | |
30352 | -gcoff3, -gxcoff3, -gvms3 implies -dD. | |
30353 | ||
30354 | 2007-02-03 Kazu Hirata <kazu@codesourcery.com> | |
30355 | ||
30356 | * c-decl.c, config/avr/avr.c, config/avr/avr.h, | |
30357 | config/m68k/m68k.c, config/m68k/netbsd-elf.h, | |
30358 | config/mn10300/mn10300.c, config/pdp11/pdp11.h, | |
30359 | config/rs6000/cell.md, config/rs6000/darwin.h, | |
30360 | config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c, | |
30361 | config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h, | |
30362 | jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c, | |
30363 | tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment | |
30364 | typos. Follow spelling conventions. | |
30365 | * doc/invoke.texi: Follow spelling conventions. | |
30366 | ||
30367 | 2007-02-03 Roger Sayle <roger@eyesopen.com> | |
30368 | ||
30369 | * simplify-rtx.c (simplify_relational_operation_1): Implement some | |
30370 | canonicalization transformations that attempt to simplify integer | |
30371 | constant comparisons to become comparisons against zero. | |
30372 | ||
30373 | 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
30374 | ||
30375 | * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into | |
30376 | fabs(x)*sqrt(2). | |
30377 | * fold-const.c (fold_binary): Fix comment typos. Fold complex | |
30378 | (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y). | |
30379 | ||
30380 | 2007-02-02 Mike Stump <mrs@apple.com> | |
30381 | ||
30382 | * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add. | |
30383 | * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add. | |
30384 | (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to | |
30385 | generate a branch island. | |
30386 | ||
30387 | 2007-02-02 Bob Wilson <bob.wilson@acm.org> | |
30388 | ||
30389 | * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P. | |
30390 | (xtensa_legitimate_address_p): New. | |
30391 | (xtensa_legitimize_address): New. | |
30392 | (xtensa_output_addr_const_extra): New. | |
30393 | * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define. | |
30394 | (BASE_REG_P): New. | |
30395 | (REG_OK_FOR_BASE_P): Use BASE_REG_P. | |
30396 | (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p. | |
30397 | (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address. | |
30398 | (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra. | |
30399 | * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New. | |
30400 | (xtensa_legitimize_address): New. | |
30401 | (xtensa_output_addr_const_extra): New. | |
30402 | ||
30403 | 2007-02-02 Steve Ellcey <sje@cup.hp.com> | |
30404 | ||
30405 | * config/ia64/ia64.c (ia64_print_operand): Fix compare strings. | |
30406 | ||
30407 | 2007-02-02 Ian Lance Taylor <iant@google.com> | |
30408 | ||
30409 | * expmed.c (expand_divmod): Add comment. | |
30410 | ||
30411 | 2007-02-02 Kazu Hirata <kazu@codesourcery.com> | |
30412 | ||
30413 | * emit-rtl.c (renumber_insns): Remove. | |
30414 | * flags.h: Remove the extern for flag_renumber_insns. | |
30415 | * rtl.h: Remove the prototype for renumber_insns. | |
30416 | * toplev.c (flag_renumber_insns): Remove. | |
30417 | ||
30418 | 2007-02-02 Hui-May Chang <hm.chang@apple.com> | |
30419 | ||
30420 | Revert for x86 darwin: | |
30421 | 2005-06-19 Uros Bizjak <uros@kss-loka.si> | |
30422 | ||
30423 | * config/i386/i386.c (ix86_function_arg_regno_p): Put back the | |
30424 | code before the following patch under TARGET_MACHO. | |
30425 | (ix86_function_value_regno_p): Likewise. | |
30426 | ||
30427 | 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
30428 | ||
30429 | * fold-const.c (negate_expr_p, fold_negate_expr): Handle | |
30430 | COMPLEX_EXPR. | |
30431 | ||
30432 | 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
30433 | ||
30434 | PR target/29682 | |
30435 | * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory | |
30436 | loads to general or fp registers. Add comments. | |
30437 | * config/ia64/ia64.md (reg_pred_prefix): Add comment. | |
30438 | ||
30439 | 2007-02-02 Paolo Bonzini <bonzini@gnu.org> | |
30440 | ||
30441 | * pointer-set.c (insert_aux): Only return insertion slot. | |
30442 | (pointer_set_insert): Adjust. | |
30443 | (pointer_set_traverse, struct pointer_map_t, pointer_map_create, | |
30444 | pointer_map_destroy, pointer_map_insert, pointer_map_contains, | |
30445 | pointer_map_traverse): New. | |
30446 | * pointer-set.h (pointer_set_traverse, struct pointer_map_t, | |
30447 | pointer_map_create, pointer_map_destroy, pointer_map_insert, | |
30448 | pointer_map_contains, pointer_map_traverse): Declare. | |
30449 | ||
30450 | 2007-02-02 Jakub Jelinek <jakub@redhat.com> | |
30451 | ||
30452 | PR middle-end/30473 | |
30453 | * builtins.c (fold_builtin_sprintf): Do not attempt to optimize | |
30454 | sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++). | |
30455 | ||
30456 | 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> | |
30457 | ||
30458 | * sched-int.h (ds_to_dk, dk_to_ds): Declare functions. | |
30459 | ||
30460 | (struct _dep): New type. | |
30461 | (dep_t): New typedef. | |
30462 | (DEP_PRO, DEP_CON, DEP_KIND): New access macros. | |
30463 | (DEP_STATUS): New access macro. The macro with the same name was | |
30464 | renamed to DEP_LINK_STATUS. | |
30465 | (dep_init): Declare function | |
30466 | ||
30467 | (struct _dep_link): New type. | |
30468 | (dep_link_t): New typedef. | |
30469 | (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros. | |
30470 | (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros. | |
30471 | (DEP_LINK_STATUS): New macro. | |
30472 | (debug_dep_links): New debug function. | |
30473 | ||
30474 | (struct _deps_list): New type. | |
30475 | (deps_list_t): New typedef. | |
30476 | (DEPS_LIST_FIRST): New access macro. | |
30477 | (FOR_EACH_DEP_LINK): New cycle macro. | |
30478 | (create_deps_list, free_deps_list, delete_deps_list): Declare | |
30479 | functions. | |
30480 | (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto. | |
30481 | (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. | |
30482 | (copy_deps_list_change_con): Ditto. | |
30483 | ||
30484 | (move_dep_link): Declare function. | |
30485 | ||
30486 | (struct _dep_node): New type. | |
30487 | (dep_node_t): New typedef. | |
30488 | (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros. | |
30489 | ||
30490 | (struct haifa_insn_data.back_deps): New field to hold backward | |
30491 | dependencies of the insn. | |
30492 | (struct haifa_insn_data.depend): Rename to forw_deps. Change its type | |
30493 | to deps_list_t. | |
30494 | (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps. | |
30495 | Change its type to deps_list_t. | |
30496 | (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS. | |
30497 | (INSN_DEPEND): Rename to INSN_FORW_DEPS. | |
30498 | (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS. | |
30499 | ||
30500 | (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead. | |
30501 | ||
30502 | (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment. | |
30503 | ||
30504 | (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration | |
30505 | and all callers. | |
30506 | (dep_cost): Declare. | |
30507 | ||
30508 | * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks. | |
30509 | (ds_to_dk, dk_to_ds): New functions. | |
30510 | ||
30511 | (init_dep_1): New static function. | |
30512 | (init_dep): New function. | |
30513 | (copy_dep): New static function. | |
30514 | ||
30515 | (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static | |
30516 | functions. | |
30517 | (detach_dep_link): New static function. | |
30518 | (move_dep_link): New function. | |
30519 | ||
30520 | (dep_links_consistent_p, dump_dep_links): New static functions. | |
30521 | (debug_dep_links): New debugging function. | |
30522 | ||
30523 | (deps_obstack, dl_obstack, dn_obstack): New static variables. | |
30524 | ||
30525 | (alloc_deps_list, init_deps_list): New static functions. | |
30526 | (create_deps_list): New function. | |
30527 | (clear_deps_list): New static function. | |
30528 | (free_deps_list, delete_deps_list, deps_list_empty_p): New functions. | |
30529 | (deps_list_consistent_p, dump_deps_list): New static functions. | |
30530 | (debug_deps_list): New function. | |
30531 | (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New | |
30532 | functions. | |
30533 | (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto. | |
30534 | ||
30535 | (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to | |
30536 | use new scheduler dependencies lists. | |
30537 | (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto. | |
30538 | (sched_analyze): Ditto. Initialize dependencies lists. | |
30539 | (add_forw_dep, compute_forward_dependences): Update to use new | |
30540 | scheduler dependencies lists. | |
30541 | ||
30542 | (init_dependency_caches): Init deps_obstack. | |
30543 | (free_dependency_caches): Free deps_obstack. | |
30544 | ||
30545 | (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use | |
30546 | new scheduler dependencies lists. | |
30547 | (delete_forw_dep, add_or_update_back_forw_dep): Ditto. | |
30548 | (add_back_forw_dep, delete_back_forw_dep): Ditto. | |
30549 | ||
30550 | * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree): | |
30551 | Update to use new scheduler dependencies lists. | |
30552 | (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto. | |
30553 | (debug_dependencies): Ditto. | |
30554 | (schedule_region): Update comments. | |
30555 | ||
30556 | * sched-ebb.c (earliest_block_with_similiar_load): Update to use new | |
30557 | scheduler dependencies lists. | |
30558 | (schedule_ebb): Update comments. | |
30559 | ||
30560 | * rtl.def (DEPS_LIST): Remove. | |
30561 | ||
30562 | * lists.c (unused_deps_list): Remove. | |
30563 | (free_list): Update assertions. | |
30564 | ||
30565 | (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove. | |
30566 | (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto. | |
30567 | ||
30568 | * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations. | |
30569 | (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto. | |
30570 | ||
30571 | * haifa-sched.c (comments): Update. | |
30572 | (insn_cost1): Remove. Inline the code into insn_cost (). | |
30573 | (insn_cost): Update to use new scheduler dependencies lists. Move | |
30574 | processing of the dependency cost to dep_cost (). | |
30575 | (dep_cost): New function. Use it instead of insn_cost () when | |
30576 | evaluating cost of the dependency. Use compatible interface to | |
30577 | interact with the target. | |
30578 | (priority): Update to use new scheduler dependencies lists. | |
30579 | (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn | |
30580 | with greater number of insns that depend on the insn. | |
30581 | (schedule_insn): Update to use new scheduler dependencies lists. Add | |
30582 | code to free backward dependencies lists. Inline and optimize code | |
30583 | from resolve_dep () - see PR28071. | |
30584 | (ok_for_early_queue_removal): Update to use new scheduler dependencies | |
30585 | lists. Update call to targetm.sched.is_costly_dependence hook. | |
30586 | ||
30587 | (fix_inter_tick, try_ready, fix_tick_ready): Update to use new | |
30588 | scheduler dependencies lists. | |
30589 | ||
30590 | (resolve_dep): Remove. Move the logic to schedule_insn (). | |
30591 | (init_h_i_d): Initialize dependencies lists. | |
30592 | ||
30593 | (process_insn_depend_be_in_spec): Rename to | |
30594 | process_insn_forw_deps_be_in_spec. Update to use new scheduler | |
30595 | dependencies lists. | |
30596 | (add_to_speculative_block, create_check_block_twin, fix_recovery_deps): | |
30597 | Update to use new scheduler dependencies lists. | |
30598 | (clear_priorities, calc_priorities, add_jump_dependencies): Ditto. | |
30599 | ||
30600 | * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use | |
30601 | new scheduler dependencies lists. | |
30602 | (build_intra_loop_deps): Ditto. | |
30603 | ||
30604 | * target.h (struct _dep): Declare to use in | |
30605 | gcc_target.sched.is_costly_dependence. | |
30606 | (struct gcc_target.sched.adjust_cost): Fix typo. | |
30607 | (struct gcc_target.sched.is_costly_dependence): Change signature to | |
30608 | use single dep_t parameter instead of an equivalent triad. | |
30609 | (struct gcc_target.sched.adjust_cost_2): Remove. | |
30610 | ||
30611 | * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove. | |
30612 | ||
30613 | * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments. | |
30614 | ||
30615 | * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update | |
30616 | documentation. | |
30617 | (TARGET_SCHED_ADJUST_COST_2): Remove documentation. | |
30618 | ||
30619 | * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler. | |
30620 | (REG_DEP_TRUE): Document. | |
30621 | ||
30622 | * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost. | |
30623 | Change signature to correspond to the targetm.sched.adjust_cost hook. | |
30624 | Update use in TARGET_SCHED_ADJUST_COST_2. | |
30625 | (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST. | |
30626 | (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use | |
30627 | new scheduler dependencies lists. | |
30628 | (ia64_gen_check): Ditto. | |
30629 | ||
30630 | * config/mips/mips.c (vr4130_swap_insns_p): Update to use new | |
30631 | scheduler dependencies lists. | |
30632 | ||
30633 | * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change | |
30634 | signature to correspond to the targetm.sched.is_costly_dependence hook. | |
30635 | (is_costly_group): Update to use new scheduler dependencies lists. | |
30636 | ||
30637 | * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function | |
30638 | instead of INSN_COST () macro. | |
30639 | ||
30640 | 2007-02-01 Ian Lance Taylor <iant@google.com> | |
30641 | ||
30642 | * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn. | |
30643 | ||
30644 | 2007-02-01 Guy Martin <gmsoft@gentoo.org> | |
30645 | ||
30646 | * pa.md (tp_load): Correct mfctl instruction syntax. | |
30647 | ||
30648 | 2007-02-01 Geoffrey Keating <geoffk@apple.com> | |
30649 | ||
30650 | * config/rs6000/rs6000.c (rs6000_stack_info): Correct | |
30651 | altivec_padding_size calculation on AIX. Improve comment, add | |
30652 | assert to verify that it's right. | |
30653 | ||
30654 | * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for | |
30655 | 64-bit. | |
30656 | ||
30657 | 2007-2-01 Seongbae Park <seongbae.park@gmail.com> | |
30658 | ||
30659 | PR inline-asm/28686 | |
30660 | * global.c (global_alloc): Add mising initialization of | |
30661 | ELIMINABLE_REGSET. | |
30662 | ||
30663 | 2007-02-01 Roger Sayle <roger@eyesopen.com> | |
30664 | ||
30665 | * alias.c (init_alias_analysis): Correct whitespace. | |
30666 | * bb-reorder.c (fix_edges_for_rarely_executed_code, | |
30667 | partition_hot_cold_basic_blocks): Likewise. | |
30668 | * builtins.c (expand_builtin_printf, expand_builtin_fprintf, | |
30669 | expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf, | |
30670 | maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, | |
30671 | fold_builtin_snprintf_chk, fold_builtin_printf, | |
30672 | fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2, | |
30673 | do_mpfr_arg3, do_mpfr_sincos): Likewise. | |
30674 | * cfgcleanup.c (cleanup_cfg): Likewise. | |
30675 | * cfgexpand.c (tree_expand_cfg): Likewise. | |
30676 | * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise. | |
30677 | * function.c (get_next_funcdef_no): Likewise. | |
30678 | * gengtype.c (main): Likewise. | |
30679 | * genmodes.c (main): Likewise. | |
30680 | * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise. | |
30681 | * haifa-sched.c (schedule_block, extend_h_i_d): Likewise. | |
30682 | * ifcvt.c (noce_emit_move_insn): Likewise. | |
30683 | * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order): | |
30684 | Likewise. | |
30685 | * stor-layout.c (get_best_mode): Likewise. | |
30686 | * tree-ssa-loop-niter.c (get_val_for): Likewise. | |
30687 | * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc, | |
30688 | scc_visit, do_ds_constraint, do_complex_constraint, label_visit, | |
30689 | perform_var_substitution, solve_graph): Likewise. | |
30690 | * tree-vrp.c (vrp_finalize): Likewise. | |
30691 | ||
30692 | 2007-02-01 Ian Lance Taylor <iant@google.com> | |
30693 | ||
30694 | * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the | |
30695 | high part of a paradoxical subreg, return a constant zero. | |
30696 | ||
30697 | 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz> | |
30698 | ||
30699 | * toplev.c (lang_dependent_init): Call init_set_costs. | |
30700 | * loop-init.c (loop_optimizer_init): Do not call init_set_costs. | |
30701 | ||
30702 | 2007-02-01 Richard Guenther <rguenther@suse.de> | |
30703 | ||
30704 | PR middle-end/30656 | |
30705 | * fold-const.c (fold_negate_expr): Allow negating a | |
30706 | constant if overflow does not change. | |
30707 | ||
30708 | 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | |
30709 | ||
30710 | * doc/c-tree.texi (Expression trees): Improve markup. | |
30711 | * doc/tm.texi (Register Classes, Addressing Modes) | |
30712 | (Floating Point): Fix spacing after abbreviations. Fix some | |
30713 | typos. | |
30714 | ||
30715 | 2007-02-01 Ben Elliston <bje@au.ibm.com> | |
30716 | ||
30717 | * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout. | |
30718 | * doc/contrib.texi: Likewise. | |
30719 | * doc/install.texi: Likewise. | |
30720 | ||
30721 | 2007-01-31 Richard Henderson <rth@redhat.com> | |
30722 | Ian Lance Taylor <iant@google.com> | |
30723 | ||
30724 | * lower-subreg.c: New file. | |
30725 | * rtl.def (CONCATN): Define. | |
30726 | * passes.c (init_optimization_passes): Add pass_lower_subreg and | |
30727 | pass_lower_subreg2. | |
30728 | * emit-rtl.c (update_reg_offset): New static function, broken out | |
30729 | of gen_rtx_REG_offset. | |
30730 | (gen_rtx_REG_offset): Call update_reg_offset. | |
30731 | (gen_reg_rtx_offset): New function. | |
30732 | * regclass.c: Revert patch of 2006-03-05, restoring | |
30733 | reg_scan_update. | |
30734 | (clear_reg_info_regno): New function. | |
30735 | * dwarf2out.c (concatn_loc_descriptor): New static function. | |
30736 | (loc_descriptor): Handle CONCATN. | |
30737 | * common.opt (fsplit_wide_types): New option. | |
30738 | * opts.c (decode_options): Set flag_split_wide_types when | |
30739 | optimizing. | |
30740 | * timevar.def (TV_LOWER_SUBREG): Define. | |
30741 | * rtl.h (gen_reg_rtx_offset): Declare. | |
30742 | (reg_scan_update): Declare. | |
30743 | * regs.h (clear_reg_info_regno): Declare. | |
30744 | * tree-pass.h (pass_lower_subreg): Declare. | |
30745 | (pass_lower_subreg2): Declare. | |
30746 | * doc/invoke.texi (Option Summary): List -fno-split-wide-types. | |
30747 | (Optimize Options): Add -fsplit-wide-types to -O1 list. Document | |
30748 | -fsplit-wide-types. | |
30749 | * doc/rtl.texi (Regs and Memory): Document concat and concatn. | |
30750 | * Makefile.in (OBJS-common): Add lower-subreg.o. | |
30751 | (lower-subreg.o): New target. | |
30752 | ||
30753 | 2007-01-31 Kazu Hirata <kazu@codesourcery.com> | |
30754 | ||
30755 | * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove. | |
30756 | ||
30757 | 2007-01-31 Anatoly Sokolov <aesok@post.ru> | |
30758 | ||
30759 | PR target/19087 | |
30760 | * config/avr/avr.c (DWARF2_ADDR_SIZE): Define. | |
30761 | ||
30762 | 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
30763 | ||
30764 | PR middle-end/29335 | |
30765 | * builtins.c (fold_builtin_sqrt): Use MPFR for constant args. | |
30766 | ||
30767 | 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz> | |
30768 | ||
30769 | * cfgloop.h: Include vec-prim.h. | |
30770 | (enum li_flags): Remove LI_ONLY_OLD. | |
30771 | (loop_iterator): Changed. | |
30772 | (fel_next, fel_init): Iterate over loop tree. | |
30773 | (FOR_EACH_LOOP_BREAK): New macro. | |
30774 | * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to | |
30775 | FOR_EACH_LOOP. | |
30776 | * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto. | |
30777 | * modulo-sched.c (sms_schedule): Ditto. | |
30778 | * tree-vectorizer.c (vectorize_loops): Ditto. | |
30779 | * doc/loop.texi: Update information on loop numbering and behavior of | |
30780 | FOR_EACH_LOOP wrto new loops. | |
30781 | * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, | |
30782 | add_to_evolution_1): Test nestedness of loops instead of comparing | |
30783 | their numbers. | |
30784 | * tree-chrec.c (chrec_fold_plus_poly_poly, | |
30785 | chrec_fold_multiply_poly_poly, chrec_evaluate, | |
30786 | hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num, | |
30787 | reset_evolution_in_loop): Ditto. | |
30788 | * Makefile.in (CFGLOOP_H): Add vecprim.h dependency. | |
30789 | ||
30790 | 2007-01-31 Dirk Mueller <dmueller@suse.de> | |
30791 | ||
30792 | * c-common.c (warn_about_parentheses): Separate warning about | |
30793 | un-parenthized sequence of comparison operators from the one | |
30794 | which is supposed to warn about x <= y <= z. | |
30795 | ||
30796 | 2007-01-31 Uros Bizjak <ubizjak@gmail.com> | |
30797 | ||
30798 | * optabs.h (enum optab_index): Add new OTI_isinf. | |
30799 | (isinf_optab): Define corresponding macro. | |
30800 | * optabs.c (init_optabs): Initialize isinf_optab. | |
30801 | * genopinit.c (optabs): Implement isinf_optab using isinf?f2 | |
30802 | patterns. | |
30803 | * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}. | |
30804 | (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L} | |
30805 | using isinf_optab. | |
30806 | (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using | |
30807 | expand_builtin_interclass_mathfn. | |
30808 | * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM. | |
30809 | * config/i386/i386.md (UNSPEC_FXAM): New constant. | |
30810 | (fxam<mode>2_i387): New insn pattern. | |
30811 | (isinf<mode>2) New expander to implement isinf, isinff and isinfl | |
30812 | built-in functions as x87 inline asm. | |
30813 | ||
30814 | 2007-01-31 Kazu Hirata <kazu@codesourcery.com> | |
30815 | ||
30816 | * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New. | |
30817 | ||
30818 | 2007-01-30 Eric Christopher <echristo@apple.com> | |
30819 | ||
30820 | * config.gcc: Add geode. | |
30821 | ||
30822 | 2007-01-31 Kazu Hirata <kazu@codesourcery.com> | |
30823 | ||
30824 | * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c, | |
30825 | ipa-inline.c, tree-profile.c, tree-ssa-live.c, | |
30826 | tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c, | |
30827 | value-prof.c: Fix comment typos. | |
30828 | ||
30829 | 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
30830 | ||
30831 | PR c++/24745 | |
30832 | * doc/invoke.texi (Wpointer-arith): Document warning. | |
30833 | ||
30834 | 2007-01-30 Janis Johnson <janis187@us.ibm.com> | |
30835 | ||
30836 | * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from | |
30837 | the list of discrepancies from the draft TR. | |
30838 | ||
30839 | 2007-01-30 Dirk Mueller <dmueller@suse.de> | |
30840 | ||
30841 | PR c++/30601 | |
30842 | * doc/invoke.texi (-Wreturn-type): Update description to | |
30843 | match new behavior. | |
30844 | ||
30845 | 2007-01-30 Richard Sandiford <richard@codesourcery.com> | |
30846 | ||
30847 | * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p. | |
30848 | ||
30849 | 2007-01-30 Uros Bizjak <ubizjak@gmail.com> | |
30850 | ||
30851 | * builtins.c (expand_builtin_int_interclass_roundingfn): New function | |
30852 | to handle optabs that operate on floating point input argument and | |
30853 | output to integer output. | |
30854 | (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ... | |
30855 | (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here. | |
30856 | (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using | |
30857 | expand_builtin_interclass_mathfn (). | |
30858 | * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387. | |
30859 | (ilogbsi2): Remove. | |
30860 | (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and | |
30861 | ilogbl built-in functions as x87 intrinsics. | |
30862 | ||
30863 | 2007-01-30 Richard Guenther <rguenther@suse.de> | |
30864 | ||
30865 | PR middle-end/27657 | |
30866 | * dwarf2out.c (reference_to_unused): Query varpool if the | |
30867 | variable was output. | |
30868 | ||
30869 | 2007-01-30 Richard Guenther <rguenther@suse.de> | |
30870 | ||
30871 | PR middle-end/30313 | |
30872 | * passes.c (execute_one_pass): Reset in_gimple_form to not | |
30873 | confuse non-unit-at-a-time mode. | |
30874 | ||
30875 | 2007-01-29 Roger Sayle <roger@eyesopen.com> | |
30876 | Richard Guenther <rguenther@suse.de> | |
30877 | ||
30878 | * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to | |
30879 | avoid undefined behaviour on overflow. Use force_fit_type_double | |
30880 | to construct the constant with the specified TREE_OVERFLOW. | |
30881 | ||
30882 | 2007-01-29 Janis Johnson <janis187@us.ibm.com> | |
30883 | ||
30884 | * config/dfp-bit.c: Add parameterized support for fp exceptions. | |
30885 | * config/dfp-bit.h: Ditto. | |
30886 | ||
30887 | 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
30888 | ||
30889 | * c-decl.c (pop_scope): Replace warnings with call to | |
30890 | warn_for_unused_label. | |
30891 | * c-common.h (warn_for_unused_label): Declare. | |
30892 | * c-common.c (warn_for_unused_label): Define. | |
30893 | ||
30894 | 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
30895 | ||
30896 | * tree-optimize.c (update_inlined_to_pointers): Delete unused | |
30897 | function. | |
30898 | ||
30899 | 2007-01-29 Janis Johnson <janis187@us.ibm.com> | |
30900 | ||
30901 | * Makefile.in (USER_H): Remove decfloat.h. | |
30902 | * ginclude/decfloat.h: Delete, moving contents to ... | |
30903 | * ginclude/float.h: Add support for decimal floating point, | |
30904 | guarded by __STDC_WANT_DEC_FP__. | |
30905 | ||
30906 | 2007-01-29 Mike Stump <mrs@apple.com> | |
30907 | ||
30908 | * doc/gccint.texi (Top): Rename Loop Representation to Loop | |
30909 | Analysis and Representation to resolve case insensitive conflict. | |
30910 | * doc/loop.texi (Loop Analysis and Representation): Likewise. | |
30911 | ||
30912 | 2007-01-28 Daniel Berlin <dberlin@dberlin.org> | |
30913 | ||
30914 | * tree.h (struct tree_memory_tag): Add aliases member. | |
30915 | (MTAG_ALIASES): New macro. | |
30916 | * tree-ssa-alias.c (alias_bitmap_obstack): New variable. | |
30917 | (add_may_alias): Remove pointer-set. Update for may_aliases being | |
30918 | a bitmap. | |
30919 | (mark_aliases_call_clobbered): Update for may_aliases being a | |
30920 | bitmap. | |
30921 | (compute_tag_properties): Ditto. | |
30922 | (create_partition_for): Ditto. | |
30923 | (compute_memory_partitions): Ditto. | |
30924 | (dump_may_aliases_for): Ditto. | |
30925 | (is_aliased_with): Ditto. | |
30926 | (add_may_alias_for_new_tag): Ditto. | |
30927 | (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap. | |
30928 | (compute_is_aliased): New function. | |
30929 | (compute_may_aliases): Call compute_is_aliased). | |
30930 | (init_alias_info): Initialize alias_bitmap_obstack. | |
30931 | (union_alias_set_into): New function. | |
30932 | (compute_flow_sensitive_aliasing): Use union_aliases_into. | |
30933 | (have_common_aliases_p): Rewrite to take two bitmaps and use | |
30934 | intersection. | |
30935 | (compute_flow_insensitive_aliasing): Stop using pointer-sets. | |
30936 | Update for bitmaps. | |
30937 | (finalize_ref_all_pointers): Update for add_may_alias changes. | |
30938 | (new_type_alias): Ditto. | |
30939 | * tree-flow-inline.h (may_aliases): Return a bitmap. | |
30940 | * tree-dfa.c (dump_variable): Check for MTAG_P'ness. | |
30941 | * tree-ssa.c (verify_flow_insensitive_alias_info): Update for | |
30942 | may_aliases being a bitmap. | |
30943 | * tree-flow.h (struct var_ann_d): Remove may_aliases member. | |
30944 | may_aliases now returns a bitmap. | |
30945 | * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases | |
30946 | being a bitmap. | |
30947 | * tree-ssa-operands.c (add_virtual_operand): Update for | |
30948 | may_aliases being a bitmap. | |
30949 | ||
30950 | 2007-01-29 Daniel Berlin <dberlin@dberlin.org> | |
30951 | ||
30952 | PR tree-optimization/30630 | |
30953 | * tree-ssa-structalias.c (do_complex_constraint): Mark correct | |
30954 | variable as changed. | |
30955 | ||
30956 | 2007-01-29 Simon Martin <simartin@users.sourceforge.net> | |
30957 | ||
30958 | PR c++/28266 | |
30959 | * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is | |
30960 | expanded only once even if an error occurs. | |
30961 | ||
30962 | 2007-01-29 Ben Elliston <bje@au.ibm.com> | |
30963 | ||
30964 | * gcov-io.h (__gcov_indirect_call_profiler): Declare. | |
30965 | (__gcov_average_profiler): Likewise. | |
30966 | (__gcov_ior_profiler): Likewise. | |
30967 | (__gcov_merge_ior): Likewise. | |
30968 | ||
30969 | 2007-01-28 Jan Hubicka <jh@suse.cz> | |
30970 | ||
30971 | * builtins.c (expand_builtin_memset): Fix typo in my last patch. | |
30972 | * value-prof.c (stringop_block_profile): Likewise. | |
30973 | ||
30974 | 2007-01-28 Jan Hubicka <jh@suse.cz> | |
30975 | ||
30976 | * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): | |
30977 | Add variant handling histograms; add wrapper. | |
30978 | (clear_storage_via_libcall): Export. | |
30979 | (emit_block_move_hints): Break out from ...; add histograms. | |
30980 | (emit_block_move): ... this one. | |
30981 | (clear_storage_hints): Break out from ...; add histograms. | |
30982 | (clear_storage): ... this one. | |
30983 | (set_storage_via_memset): Handle histogram. | |
30984 | * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare. | |
30985 | (clear_storage_hints, clear_storage_via_libcall): Declare. | |
30986 | (set_storage_via_setmem): Update prototype. | |
30987 | * doc/md.texi (movmem, setmem): Document new arguments. | |
30988 | ||
30989 | * value-prof.c (dump_histogram_value, tree_find_values_to_profile): | |
30990 | Add new histograms. | |
30991 | (stringop_block_profile): New global function. | |
30992 | (tree_stringops_values_to_profile): Profile block size and alignment. | |
30993 | * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and | |
30994 | HIST_TYPE_IOR. | |
30995 | (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler. | |
30996 | (stringop_block_profile): Declare. | |
30997 | * builtins.c: Include value-prof.h. | |
30998 | (expand_builtin_memcpy, expand_builtin_memset): Pass block profile. | |
30999 | * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter. | |
31000 | (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants. | |
31001 | (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update. | |
31002 | * profile.c (instrument_values): Add new counters. | |
31003 | * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to | |
31004 | calls. | |
31005 | * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New. | |
31006 | (tree_init_edge_profiler): Build new profilers. | |
31007 | (tree_gen_average_profiler, tree_gen_ior_profiler): New. | |
31008 | (pass_tree_profile): Add dump. | |
31009 | (tree_profile_hooks): Update. | |
31010 | * Makefile.in (LIBGCOV): Add new constants. | |
31011 | * libgcov.c (__gcov_merge_ior, __gcov_average_profiler, | |
31012 | __gcov_ior_profiler): New. | |
31013 | * config/i386/i386.md (movmem/setmem expanders): Add new optional | |
31014 | arguments. | |
31015 | ||
31016 | 2007-01-28 David Edelsohn <edelsohn@gnu.org> | |
31017 | ||
31018 | * doc/md.texi (Standard Pattern Names): Document blockage pattern. | |
31019 | ||
31020 | 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz> | |
31021 | ||
31022 | * tree-ssa-loop-unswitch.c: Include tree-inline.h. | |
31023 | (tree_unswitch_single_loop): Pass eni_size_weights to | |
31024 | tree_num_loop_insns. | |
31025 | * tree-ssa-loop-manip.c: Include tree-inline.h. | |
31026 | (can_unroll_loop_p): Pass eni_size_weights to | |
31027 | tree_num_loop_insns. | |
31028 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): | |
31029 | Pass eni_size_weights to estimate_num_insns. | |
31030 | * tree.h (init_inline_once): Export. | |
31031 | * toplev.c (backend_init): Call init_inline_once. | |
31032 | * cgraphunit.c (cgraph_process_new_functions, | |
31033 | cgraph_analyze_function): Pass eni_inlining_weights to | |
31034 | estimate_num_insns. | |
31035 | * ipa-inline.c (compute_inline_parameters): Ditto. | |
31036 | * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights | |
31037 | to estimate_num_insns. | |
31038 | (try_unroll_loop_completely): Pass eni_size_weights to | |
31039 | tree_num_loop_insns. | |
31040 | * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights | |
31041 | ot estimate_num_insns. | |
31042 | * tree-ssa-loop-prefetch.c: Include tree-inline.h. | |
31043 | (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns. | |
31044 | * tree-inline.c (eni_inlining_weights, eni_size_weights, | |
31045 | eni_time_weights): New variables. | |
31046 | (init_inline_once): Initialize them. | |
31047 | (struct eni_data): Mew. | |
31048 | (estimate_num_insns_1, estimate_num_insns): Use weights. | |
31049 | * tree-inline.h (struct eni_weights_d): New. | |
31050 | (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare. | |
31051 | (estimate_num_insns): Declaration changed. | |
31052 | * cfgloop.h (tree_num_loop_insns): Declaration changed. | |
31053 | * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o, | |
31054 | tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency. | |
31055 | ||
31056 | 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz> | |
31057 | ||
31058 | * tree-data-ref.c (conflict_fn): Assert that the number of affine | |
31059 | relations in the conflict function is valid. | |
31060 | ||
31061 | 2007-01-27 Ian Lance Taylor <iant@google.com> | |
31062 | ||
31063 | * common.opt: Add fstrict-overflow. | |
31064 | * opts.c (decode_options): Set flag_strict_overflow if -O2. | |
31065 | * flags.h (TYPE_OVERFLOW_WRAPS): Define. | |
31066 | (TYPE_OVERFLOW_UNDEFINED): Define. | |
31067 | (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED. | |
31068 | Replace all uses. | |
31069 | * tree.h (TYPE_TRAP_SIGNED): Don't define. | |
31070 | * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED. | |
31071 | (fold_negate_expr): Likewise. | |
31072 | (make_range): Likewise. | |
31073 | (extract_muldiv_1): Likewise. | |
31074 | (maybe_canonicalize_comparison): Likewise. | |
31075 | (fold_comparison): Likewise. | |
31076 | (fold_binary): Likewise. | |
31077 | (tree_expr_nonnegative_p): Likewise. | |
31078 | (tree_expr_nonzero_p): Likewise. | |
31079 | * tree-vrp.c (compare_values): Likewise. | |
31080 | (extract_range_from_binary_expr): Likewise. | |
31081 | (extract_range_from_unary_expr): Likewise. | |
31082 | * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): | |
31083 | Likewise. | |
31084 | (nowrap_type_p): Likewise. | |
31085 | * tree-scalar-evolution.c (simple_iv): Likewise. | |
31086 | * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS. | |
31087 | (build_range_check): Likewise. | |
31088 | (extract_muldiv_1): Likewise. | |
31089 | (fold_comparison): Likewise. | |
31090 | * tree-vrp.c (vrp_int_const_binop): Likewise. | |
31091 | (extract_range_from_unary_expr): Likewise. | |
31092 | * convert.c (convert_to_integer): Likewise. | |
31093 | * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS. | |
31094 | (fold_comparison): Likewise. | |
31095 | (fold_binary): Likewise. | |
31096 | * optabs.c (optab_for_tree_code): Likewise. | |
31097 | * tree-vectorizer.c (vect_is_simple_reduction): Likewise. | |
31098 | * simplify-rtx.c (simplify_const_relational_operation): Check | |
31099 | flag_strict_overflow and flag_trapv. | |
31100 | (simplify_const_relational_operation): Likewise. | |
31101 | * doc/invoke.texi (Option Summary): Mention -fstrict-overflow. | |
31102 | (Optimize Options): Add -fstrict-overflow to -O2 list. Document | |
31103 | -fstrict-overflow. | |
31104 | ||
31105 | 2007-01-27 Roger Sayle <roger@eyesopen.com> | |
31106 | ||
31107 | * tree.c (tree_fold_gcd): Delete. | |
31108 | * tree.h (tree_fold_gcd): Remove prototype. | |
31109 | * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to | |
31110 | test whether one constant integer is a multiple of another. Instead | |
31111 | call int_const_binop with TRUNC_MOD_EXPR and test for a zero result. | |
31112 | * fold-const.c (multiple_of_p): We've determined both TOP and | |
31113 | BOTTOM are integer constants so we can call int_const_binop directly | |
31114 | instead of the more generic const_binop. | |
31115 | ||
31116 | 2007-01-27 Roger Sayle <roger@eyesopen.com> | |
31117 | ||
31118 | * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and | |
31119 | 1*X check that the constant hasn't overflowed, to preserve the | |
31120 | TREE_OVERFLOW bit. | |
31121 | (round_up): Provide an efficient implementation when rouding-up an | |
31122 | INTEGER_CST to a power-of-two. | |
31123 | ||
31124 | 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | |
31125 | ||
31126 | * doc/sourcebuild.texi: Add comma for clarity. | |
31127 | * doc/extend.texi: Fix some typos. | |
31128 | * doc/passes.texi: Likewise. | |
31129 | * doc/cppinternals.texi: Likewise. | |
31130 | * doc/c-tree.texi: Likewise. | |
31131 | * doc/tree-ssa.texi: Likewise. | |
31132 | * doc/install.texi: Likewise. | |
31133 | ||
31134 | 2007-01-27 Jan Hubicka <jh@suse.cz> | |
31135 | ||
31136 | * tree-sra.c (sra_walk_function): Don't rely on aliases being build. | |
31137 | (pass_sra): Do not require alias information. | |
31138 | * passes.c (init_optimization_passes): Add SRA | |
31139 | ||
31140 | 2007-01-27 Steven Bosscher <steven@gcc.gnu.org> | |
31141 | ||
31142 | * tracer.c (rest_of_handle_tracer): We already cleaned | |
31143 | up the CFG in tracer() so don't do it here again. | |
31144 | * cfgcleanup.c (rest_of_handle_jump2): Don't repeat | |
31145 | cleanup_cfg here, either. And don't call renumber_insns. | |
31146 | ||
31147 | * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END | |
31148 | and BB_HEAD are in the insn stream here. Instead make sure | |
31149 | that BB_INSN is valid on all insns. Also, do check here that | |
31150 | there are no pending branch predictions... | |
31151 | (rtl_verify_flow_info): ...instead of doing it here. Checks | |
31152 | for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to | |
31153 | here. | |
31154 | ||
31155 | 2007-01-26 Roger Sayle <roger@eyesopen.com> | |
31156 | ||
31157 | * config/i386/i386.c (ix86_swap_binary_operands_p): New helper | |
31158 | function to simplify/factorize operand order canonicalization. | |
31159 | (ix86_fixup_binary_operands): Reorganize using the above function. | |
31160 | (ix86_binary_operator_ok): Likewise. | |
31161 | ||
31162 | 2007-01-27 Jakub Jelinek <jakub@redhat.com> | |
31163 | ||
31164 | * genattrtab.c (struct attr_value_list, insn_code_values): Move to | |
31165 | file scope from optimize_attrs. | |
31166 | (simplify_test_exp): If insn_code_values is not NULL, use it to speed | |
31167 | up search. | |
31168 | (optimize_attrs): Clear insn_code_values after freeing it. | |
31169 | ||
31170 | 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz> | |
31171 | ||
31172 | * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from | |
31173 | a parts.base assignment. | |
31174 | ||
31175 | 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz> | |
31176 | ||
31177 | * tree-data-ref.c (dump_subscript): Use dump_conflict_function. | |
31178 | (compute_subscript_distance, initialize_data_dependence_relation, | |
31179 | finalize_ddr_dependent, analyze_ziv_subscript, | |
31180 | analyze_siv_subscript_cst_affine, | |
31181 | compute_overlap_steps_for_affine_univar, | |
31182 | compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine, | |
31183 | analyze_siv_subscript, analyze_miv_subscript, | |
31184 | analyze_overlapping_iterations, subscript_dependence_tester_1, | |
31185 | compute_self_dependence, free_dependence_relation): Work | |
31186 | with affine_fn instead of chrecs. | |
31187 | (dump_affine_function, dump_conflict_function, affine_function_equal_p, | |
31188 | common_affine_function, affine_function_base, | |
31189 | affine_function_constant_p, affine_fn_op, affine_fn_plus, | |
31190 | affine_fn_minus, affine_fn_free, conflict_fn_not_known, | |
31191 | conflict_fn_no_dependence, free_conflict_function, free_subscripts, | |
31192 | conflict_fn, affine_fn_cst, affine_fn_univar): New functions. | |
31193 | (all_chrecs_equal_p): Removed. | |
31194 | * tree-data-ref.h (affine_fn, conflict_function): New types. | |
31195 | (struct subscript): Change type of conflicting_iterations_in_a | |
31196 | and conflicting_iterations_in_b. | |
31197 | ||
31198 | 2007-01-26 Steve Ellcey <sje@cup.hp.com> | |
31199 | ||
31200 | PR other/30182 | |
31201 | * config/pa/pa.h (TARGET_HPUX_11): New. | |
31202 | * config/pa/pa-hpux11.h (TARGET_HPUX_11): New. | |
31203 | * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11. | |
31204 | ||
31205 | 2007-01-26 Daniel Berlin <dberlin@dberlin.org> | |
31206 | Richard Guenther <rguenther@suse.de> | |
31207 | ||
31208 | * tree-ssa-structalias.c (solve_graph): Handle case | |
31209 | we merged the variable to another. | |
31210 | ||
31211 | 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
31212 | ||
31213 | * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even' | |
31214 | functions. | |
31215 | ||
31216 | * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan, | |
31217 | catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions. | |
31218 | ||
31219 | 2007-01-25 DJ Delorie <dj@redhat.com> | |
31220 | ||
31221 | * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't | |
31222 | allow changes to modes which don't fit in those registers. | |
31223 | ||
31224 | * reload1.c (choose_reload_regs): Check for invalid subregs before | |
31225 | computing their locations, not after. | |
31226 | ||
31227 | 2007-01-25 Geoffrey Keating <geoffk@apple.com> | |
31228 | ||
31229 | PR 25127 | |
31230 | * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin, | |
31231 | save Altivec registers in an eh_return function. | |
31232 | (compute_vrsave_mask): Likewise. | |
31233 | (rs6000_stack_info): Correct AIX/Darwin stack alignment computation | |
31234 | for saving Altivec registers. | |
31235 | (rs6000_emit_prologue): Don't allocate stack twice in | |
31236 | eh_return function. Correct expected value of altivec_save_offset | |
31237 | when using save_world. Describe save of R0 to stack when using | |
31238 | save_world. Describe stack pointer adjustment when using | |
31239 | save_world. Remove duplicated eh_return parameter register saving. | |
31240 | Update sp_offset variable after save_world. | |
31241 | * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove | |
31242 | darwin-world.asm. | |
31243 | (LIB2FUNCS_EXTRA): Add darwin-world.asm. | |
31244 | * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64 | |
31245 | implies Altivec. | |
31246 | ||
31247 | 2007-01-25 Steve Ellcey <sje@cup.hp.com> | |
31248 | ||
31249 | * config.gcc (ia64*-*-hpux*): Make posix threads the default. | |
31250 | ||
31251 | 2007-01-25 Steve Ellcey <sje@cup.hp.com> | |
31252 | ||
31253 | PR other/30182 | |
31254 | * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines. | |
31255 | * config/ia64/ia64.c (ia64_init_builtins): Ditto. | |
31256 | ||
31257 | 2007-01-25 Richard Guenther <rguenther@suse.de> | |
31258 | ||
31259 | * doc/invoke.texi (-Wcoverage-mismatch): Document. | |
31260 | * common.opt (-Wcoverage-mismatch): New warning option. | |
31261 | * coverage.c (get_coverage_counts): Ignore coverage mismatch | |
31262 | if -Wcoverage-mismatch is given. | |
31263 | ||
31264 | 2007-01-25 Razya Ladelsky <razya@il.ibm.com> | |
31265 | ||
31266 | * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA. | |
31267 | (ipcp_driver): Change to static definition. | |
31268 | Add dumping of the ifunctions. | |
31269 | (constant_val_insert): Remove unused parameter. Support for SSA. | |
31270 | (ipcp_propagate_const): Support for SSA. | |
31271 | (ipcp_profile_bb_print): Print only analyzed nodes. | |
31272 | (ipcp_replace_map_create): Remove support for Fortran constant | |
31273 | for now. | |
31274 | * ipa-prop.c (ipa_method_modify_stmt, | |
31275 | ipa_callsite_compute_param): Support for SSA. | |
31276 | * ipa-prop.h (ipcp_driver): Remove declaration. | |
31277 | (IS_VALID_TREE_MAP_INDEX): Add define. | |
31278 | ||
31279 | 2007-01-24 Geoffrey Keating <geoffk@apple.com> | |
31280 | ||
31281 | * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap. | |
31282 | ||
31283 | 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
31284 | ||
31285 | PR middle-end/30447 | |
31286 | * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a | |
31287 | constant argument to cabs and do it without checking for | |
31288 | -funsafe-math-optimizations. | |
31289 | ||
31290 | 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu> | |
31291 | ||
31292 | * c-common.h (RID_FIRST_CXX0X): New. | |
31293 | (RID_LAST_CXX0X): New. | |
31294 | * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered | |
31295 | by -Wall. | |
31296 | * c.opt (Wc++0x-compat): New. | |
31297 | * doc/invoke.texi (-Wc++0x-compat): Document. | |
31298 | ||
31299 | 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
31300 | ||
31301 | * builtins.c (fold_builtin_carg): New. | |
31302 | (fold_builtin_1): Use it. | |
31303 | ||
31304 | 2007-01-24 Jan Hubicka <jh@suse.cz> | |
31305 | ||
31306 | * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns. | |
31307 | ||
31308 | * ipa-inline.c (initial_insns, max_insns): Delete. | |
31309 | (compute_max_insns): New function. | |
31310 | (cgraph_decide_inlining_of_small_function): Use it; take minimal | |
31311 | amount of insns as base for code growth. | |
31312 | (cgraph_decide_inlining): Make initial_insns local; do not compute | |
31313 | max_insns. | |
31314 | * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60. | |
31315 | * doc/invoke.texi (inline-unit-growth): Update docs. | |
31316 | ||
31317 | 2007-01-24 Jakub Jelinek <jakub@redhat.com> | |
31318 | ||
31319 | * config/i386/i386.h (x86_cmpxchg16b): Remove const. | |
31320 | (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b. | |
31321 | * config/i386/i386.c (x86_cmpxchg16b): Remove const. | |
31322 | (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b | |
31323 | for CPUs that have PTA_CX16 set. | |
31324 | ||
31325 | PR middle-end/27416 | |
31326 | * gimplify.c (omp_check_private): New function. | |
31327 | (gimplify_scan_omp_clauses): Use it for | |
31328 | firstprivate/lastprivate/reduction. | |
31329 | ||
31330 | PR middle-end/30494 | |
31331 | * gimplify.c (omp_add_variable): Don't call omp_notice_variable | |
31332 | on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs. | |
31333 | ||
31334 | PR middle-end/30421 | |
31335 | * omp-low.c (lower_omp_for_lastprivate): Add dlist argument. | |
31336 | If lower_lastprivate_clauses emits some statements, append them | |
31337 | to dlist rather than body_p and to body_p append an initializer. | |
31338 | (lower_omp_for): Adjust caller. | |
31339 | ||
31340 | 2007-01-24 Steve Ellcey <sje@cup.hp.com> | |
31341 | ||
31342 | * target.h (globalize_decl_name): New. | |
31343 | * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New. | |
31344 | * output.h (default_globalize_decl_name): New. | |
31345 | * varasm.c (asm_output_bss): Use globalize_decl_name instead of | |
31346 | globalize_label. | |
31347 | (globalize_decl): Ditto. | |
31348 | (default_globalize_decl_name): New. | |
31349 | * config/ia64/ia64.c (ia64_globalize_decl_name): New. | |
31350 | (ia64_handle_version_id_attribute): New. | |
31351 | (TARGET_ASM_GLOBALIZE_DECL_NAME): New. | |
31352 | (ia64_asm_output_external): Use globalize_decl_name instead | |
31353 | of globalize_label. | |
31354 | * doc/extend.texi (version_id): New pragma. | |
31355 | * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook. | |
31356 | ||
31357 | 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com> | |
31358 | ||
31359 | * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with | |
31360 | _uleb128_t and _Unwind_SWord with _sleb128_t. | |
31361 | * unwind-dw2.c (extract_cie_info, execute_stack_op, | |
31362 | execute_cfa_program, uw_frame_state_for, uw_update_context_1): | |
31363 | Likewise. | |
31364 | * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise. | |
31365 | * unwind-pe.h (read_uleb128, read_sleb128, | |
31366 | read_encoded_value_with_base): Likewise. | |
31367 | * unwind-generic.h: Define _sleb128_t and _uleb128_t types. | |
31368 | ||
31369 | 2007-01-24 Richard Guenther <rguenther@suse.de> | |
31370 | ||
31371 | * builtins.c (expand_builtin_cexpi): Get the fndecl | |
31372 | for cexp in the correct way. | |
31373 | ||
31374 | 2007-01-24 Jan Hubicka <jh@suse.cz> | |
31375 | ||
31376 | * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS | |
31377 | of calls. | |
31378 | ||
31379 | 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com> | |
31380 | ||
31381 | * c-cppbuiltin.c (builtin_define_type_sizeof): New function. | |
31382 | (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__, | |
31383 | __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__, | |
31384 | __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__, | |
31385 | __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and | |
31386 | __SIZEOF_PTRDIFF_T__. | |
31387 | * doc/cpp.texi: Documentation for the new builtin macros added. | |
31388 | ||
31389 | 2007-01-24 Uros Bizjak <ubizjak@gmail.com> | |
31390 | ||
31391 | * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2, | |
31392 | log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2 | |
31393 | instead of operands[2] to avoid access past the end of array. | |
31394 | ||
31395 | 2007-01-24 Richard Sandiford <richard@codesourcery.com> | |
31396 | ||
31397 | * reload1.c (emit_reload_insns): Pass the reload register | |
31398 | for a non-spill output reload through forget_old_reloads_1. | |
31399 | ||
31400 | 2007-01-23 Joseph Myers <joseph@codesourcery.com> | |
31401 | ||
31402 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define | |
31403 | _SOFT_DOUBLE if doubles use software floating-point. | |
31404 | * config/rs6000/libgcc-ppc-glibc.ver: Export additional long | |
31405 | double functions if _SOFT_DOUBLE, not _SOFT_FLOAT. | |
31406 | * config/rs6000/darwin-ldouble.c: Also compile functions for | |
31407 | hard-float without FPRs. Use fmsub function for all __NO_FPRS__ | |
31408 | cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT. | |
31409 | * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove | |
31410 | commented-out long double override. | |
31411 | (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise. | |
31412 | * config/rs6000/eabispe.h: Likewise. | |
31413 | * config/rs6000/rs6000.c (rs6000_override_options): Don't override | |
31414 | long double for non-SPE. | |
31415 | (rs6000_handle_option): Likewise. | |
31416 | (invalid_e500_subreg): Disallow more subregs involding DImode, | |
31417 | DFmode, TImode or TFmode. | |
31418 | (rs6000_legitimate_offset_address_p): Check TFmode offsets for | |
31419 | E500 double. | |
31420 | (legitimate_lo_sum_address_p): Also check for TFmode for E500 | |
31421 | double. | |
31422 | (rs6000_legitimize_address): Also handle TFmode for E500 double. | |
31423 | (rs6000_legitimize_reload_address): Also handle TFmode for E500 | |
31424 | double. | |
31425 | (rs6000_legitimate_address): Also check for TFmode for E500 | |
31426 | double. | |
31427 | (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double. | |
31428 | (spe_build_register_parallel): Handle TFmode and TCmode. | |
31429 | (rs6000_spe_function_arg): Handle TFmode and TCmode for E500 | |
31430 | double. | |
31431 | (function_arg): Handle TFmode and TCmode for E500 double. | |
31432 | (rs6000_init_libfuncs): Initialize extra libfuncs for soft double | |
31433 | in general. | |
31434 | (print_operand): Handle TFmode and TImode for %y. | |
31435 | (rs6000_generate_compare): Handle TFmode comparisons for E500 | |
31436 | double. | |
31437 | (spe_func_has_64bit_regs_p): Check for TFmode for E500 double. | |
31438 | (rs6000_function_value): Handle TFmode and TCmode for E500 double. | |
31439 | (rs6000_libcall_value): Handle TFmode and TCmode for E500 double. | |
31440 | * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for | |
31441 | TFmode for E500 double. | |
31442 | * config/rs6000/rs6000.md (FP): Allow TF for E500 double. | |
31443 | (floatsidf2): Enable for E500 double. | |
31444 | (movtf_softfloat): Use rs6000_nonimmediate_operand. | |
31445 | (extenddftf2): Change to extenddftf2_fprs. | |
31446 | (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs | |
31447 | depending on TARGET_E500_DOUBLE. | |
31448 | (extendsftf2): Enable for E500 double. | |
31449 | (trunctfdf2): Enable for E500 double. | |
31450 | (trunctfsf2): Change to trunctfsf2_fprs. | |
31451 | (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs | |
31452 | depending on TARGET_E500_DOUBLE. | |
31453 | (floatsitf2): Enable for E500 double. | |
31454 | (fix_trunctfsi2): Change to fix_trunctfsi2_fprs. | |
31455 | (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or | |
31456 | gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE. | |
31457 | (negtf2): Change to negtf2_internal. | |
31458 | (negtf2): New expander. | |
31459 | (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst, | |
31460 | gen_spe_abstf2_cmp or gen_abstf2_internal depending on | |
31461 | TARGET_E500_DOUBLE and flag_unsafe_math_optimizations. | |
31462 | (movdi_internal32): Use rs6000_nonimmediate_operand. | |
31463 | (unnamed splitter): Likewise. | |
31464 | * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR, | |
31465 | TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs. | |
31466 | (SPE64TF, DITI): New mode macros. | |
31467 | (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more | |
31468 | modes. | |
31469 | (frob_tf_ti): New. | |
31470 | (frob_<mode>_di_2): New. | |
31471 | (frob_tf_di_8_2): New. | |
31472 | (frob_di_df): Change to frob_di_<mode>; allow more modes. | |
31473 | (frob_ti_tf): New. | |
31474 | (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow | |
31475 | more modes. | |
31476 | (frob_ti_<mode>_8_2): New. | |
31477 | (frob_ti_tf_2): New. | |
31478 | (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2, | |
31479 | mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow | |
31480 | TFmode. | |
31481 | (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2, | |
31482 | mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New. | |
31483 | (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2, | |
31484 | spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal, | |
31485 | spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New. | |
31486 | (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, | |
31487 | tsttflt_gp): New. | |
31488 | ||
31489 | 2007-01-23 Ian Lance Taylor <iant@google.com> | |
31490 | ||
31491 | * Makefile.in (OBJS-common): Reformat, alphabetize, but put | |
31492 | insn-*.o first. | |
31493 | (OBJS-archive): Reformat, alphabetize. | |
31494 | (OBJS): Change out_object_file to OBJS-md. | |
31495 | ||
31496 | 2007-01-23 Uros Bizjak <ubizjak@gmail.com> | |
31497 | ||
31498 | * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, | |
31499 | JUMP_P and CALL_P predicates where applicable. | |
31500 | * config/i386/i386.c: Ditto. | |
31501 | * config/i386/i386.md: Ditto. | |
31502 | * config/i386/mmx.md: Ditto. | |
31503 | * config/i386/predicates.md: Ditto. | |
31504 | ||
31505 | 2007-01-22 Andreas Schwab <schwab@suse.de> | |
31506 | ||
31507 | * config/m68k/m68k.h: Fix comment. | |
31508 | ||
31509 | 2007-01-22 Jan Hubicka <jh@suse.cz> | |
31510 | ||
31511 | * passes.c (init_optimization_passes): Do not rerun | |
31512 | pass_early_warn_uninitialized. | |
31513 | ||
31514 | 2007-01-22 Richard Guenther <rguenther@suse.de> | |
31515 | ||
31516 | PR tree-optimization/30038 | |
31517 | * tree-ssa-math-opts.c (maybe_record_sincos): New static helper | |
31518 | function. | |
31519 | (execute_cse_sincos_1): Likewise. | |
31520 | (execute_cse_sincos): Likewise. | |
31521 | (gate_cse_sincos): Likewise. | |
31522 | (pass_cse_sincos): New pass CSEing sin() and cos() calls using | |
31523 | the cexpi() canonicalization of sincos(). | |
31524 | * tree-pass.h (pass_cse_sincos): Declare. | |
31525 | * passes.c (init_optimization_passes): New pass pas_cse_sincos. | |
31526 | ||
31527 | 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr> | |
31528 | ||
31529 | PR rtl-optimization/29329 | |
31530 | * combine.c (replaced_rhs_insn): Rename to i2mod. | |
31531 | (replaced_rhs_value): Rename to i2mod_new_rhs. | |
31532 | (i2mod_old_rhs): New global variable. | |
31533 | (combine_instructions): Adjust for above change. Save a copy of | |
31534 | the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL | |
31535 | note are substituted in the second instruction. | |
31536 | (distribute_notes) <REG_DEAD>: Adjust for above change. Do not | |
31537 | ditch the note if it pertains to the second eliminated register | |
31538 | and this register is mentioned in i2mod_old_rhs. | |
31539 | ||
31540 | Revert: | |
31541 | 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr> | |
31542 | ||
31543 | * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past | |
31544 | the insn to which the note was originally attached. | |
31545 | ||
31546 | 2007-01-21 Jan Hubicka <jh@suse.cz> | |
31547 | ||
31548 | * ipa-inline.c (inlining_mode): Comment, move up. | |
31549 | (cgraph_decide_inlining_incrementally): Do not perform inlining | |
31550 | itself; fix handling of flattening of self recursive functions. | |
31551 | (cgraph_find_cycles): Remove. | |
31552 | (cgraph_flatten_node): Remove. | |
31553 | (cgraph_decide_inlining): Use incremental inliner to handle flattening. | |
31554 | (try_inline): New function. | |
31555 | (cgraph_early_inlining): Update call of | |
31556 | cgraph_decide_inlining_incrementally. Apply inlining here. | |
31557 | (apply_inline): Update call of cgraph_decide_inlining_incrementally. | |
31558 | ||
31559 | 2007-01-21 Dirk Mueller <dmueller@suse.de> | |
31560 | ||
31561 | PR bootstrap/30511 | |
31562 | * tree-vrp.c (check_array_bounds): do not warn | |
31563 | about ADDR_EXPR's of ARRAY_REF's which are immediately | |
31564 | used in binary expressions. | |
31565 | ||
31566 | 2007-01-21 Ira Rosen <irar@il.ibm.com> | |
31567 | ||
31568 | * tree-vectorizer.h (struct _stmt_vec_info): Add new field | |
31569 | read_write_dep and macros for its access. | |
31570 | * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field. | |
31571 | * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove | |
31572 | argument, call vect_check_interleaving for every independent pair of | |
31573 | data-refs. Mark loads that access the same memory location as a store | |
31574 | in the loop. | |
31575 | (vect_check_dependences): Remove. | |
31576 | (vect_analyze_data_ref_dependences): Remove vect_check_dependences | |
31577 | call, fix the call to vect_analyze_data_ref_dependence. | |
31578 | (vect_analyze_data_ref_access): For statements that access the same | |
31579 | data-ref, check that they are not stores; for loads, check that there | |
31580 | is no store that access the same location. | |
31581 | ||
31582 | 2007-01-20 Roger Sayle <roger@eyesopen.com> | |
31583 | Joseph Myers <joseph@codesourcery.com> | |
31584 | ||
31585 | * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox. | |
31586 | (-fdump-rtl-stack): Likewise. | |
31587 | (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo. | |
31588 | (-mcheck-zero-division, -mcpu): Fix under/overfull hbox. | |
31589 | (-mpt-fixed): Use @minus{} for minus sign. | |
31590 | (Using Precompiled Headers): Fix under/overfull hbox. | |
31591 | ||
31592 | 2007-01-20 Jan Hubicka <jh@suse.cz> | |
31593 | ||
31594 | * tree-flow.h (struct stmt_ann_d): Move references_memory to proper | |
31595 | place within annotation. | |
31596 | ||
31597 | 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
31598 | ||
31599 | * pa.c (output_move_double): Change array size of xoperands to 4. | |
31600 | ||
31601 | 2007-01-20 Jan Hubicka <jh@suse.cz> | |
31602 | ||
31603 | * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL | |
31604 | as temporary. | |
31605 | ||
31606 | 2007-01-19 Ian Lance Taylor <iant@google.com> | |
31607 | ||
31608 | * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast | |
31609 | constant to unsigned HOST_WIDE_INT before negating. | |
31610 | ||
31611 | 2007-01-19 Ian Lance Taylor <iant@google.com> | |
31612 | ||
31613 | * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field | |
31614 | to unsigned. | |
31615 | (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison. | |
31616 | (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise. | |
31617 | (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise. | |
31618 | (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise. | |
31619 | (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise. | |
31620 | (realloc_vdef, realloc_vuse): Change second parameter to | |
31621 | unsigned. | |
31622 | (ssa_operand_iterator_d): Change vuse_index and mayuse_index | |
31623 | fields to unsigned. | |
31624 | * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to | |
31625 | unsigned. Change x and lim locals to unsigned. | |
31626 | (realloc_vdef, realloc_vuse): Change num_elem parameter to | |
31627 | unsigned. | |
31628 | (finalize_ssa_vuse_ops): Change old_i local to unsigned. | |
31629 | (copy_virtual_operands): Change i and n locals to unsigned. | |
31630 | ||
31631 | 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
31632 | ||
31633 | PR middle-end/29335 | |
31634 | * builtins.c (fold_builtin_1): Handle builtin fdim. | |
31635 | ||
31636 | 2007-01-20 Jan Hubicka <jh@suse.cz> | |
31637 | ||
31638 | * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars. | |
31639 | * tree-ssa-structalias.c (compute_points_to_sets): Do call | |
31640 | init_alias_heapvars. | |
31641 | (init_alias_heapvars): Initialize only when not already initialized. | |
31642 | (delete_alias_heapvars): Set heapvar_for_stmt to NULL. | |
31643 | ||
31644 | 2007-01-19 Roger Sayle <roger@eyesopen.com> | |
31645 | ||
31646 | * common.opt (fsigned-zeros): New command line option. | |
31647 | * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead | |
31648 | of flag_unsafe_math_optimizations. | |
31649 | * opts.c (set_fast_math_flags): The -ffast-math command line option | |
31650 | implies -fno-signed-zeros. | |
31651 | (fast_math_flags_set_p): Likewise. | |
31652 | ||
31653 | * doc/invoke.texi: Document new -fno-signed-zeros option, and update | |
31654 | the documentation of -ffast-math appropriately. Wrap long lines. | |
31655 | ||
31656 | 2007-01-19 Steve Ellcey <sje@cup.hp.com> | |
31657 | ||
31658 | * system.h (ASM_MAKE_LABEL_LINKONCE): Poison. | |
31659 | * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef. | |
31660 | ||
31661 | 2007-01-19 Tomas Bily <tbily@suse.cz> | |
31662 | ||
31663 | * cgraphunit.c (cgraph_finalize_function): Updating of pid | |
31664 | * tree-profile.c: | |
31665 | (tree_init_ic_make_global_vars): New function | |
31666 | (tree_init_edge_profiler): call of tree_init_ic_make_global_vars | |
31667 | (tree_gen_ic_profiler): New function | |
31668 | (tree_gen_ic_func_profiler): New function | |
31669 | (tree_profiling): Added calling of tree_gen_ic_func_profiler | |
31670 | (tree_profile_hooks): Added hook for indirec/virtual calls | |
31671 | * value-prof.c (tree_find_values_to_profile): New case for | |
31672 | indirect calls | |
31673 | (tree_values_to_profile): Call for determining indirect/virtual | |
31674 | counters | |
31675 | (tree_indirect_call_to_profile): New function | |
31676 | (tree_ic_transform): New function | |
31677 | (tree_ic): New function | |
31678 | (find_func_by_pid): New function | |
31679 | (init_pid_map): New function | |
31680 | (tree_value_profile_transformations): Added check for | |
31681 | indirect/virtual call transformation | |
31682 | * value-prof.h (enum hist_type): New counter type for | |
31683 | indirect/virtual calls | |
31684 | (profile_hooks): Added new hook for profiling indirect/virtual | |
31685 | calls | |
31686 | * profile.c (instrument_values): New case for indirect/virtual | |
31687 | call added | |
31688 | * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6 | |
31689 | (GCOV_COUNTER_V_INDIR): New counter type | |
31690 | (GCOV_COUNTER_NAMES): New name of counter "indirect" added | |
31691 | (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual | |
31692 | call added | |
31693 | * cgraph.c: Definition of cgraph_max_pid | |
31694 | (cgraph_create_node): Default init of pid attribute | |
31695 | * cgraph.h: Declaration of cgraph_max_pid | |
31696 | (struct cgraph_node): Added pid attribute | |
31697 | * libgcov.c (__gcov_indirect_call_profiler): New function | |
31698 | (__gcov_one_value_profiler_body): New function | |
31699 | (__gcov_one_value_profiler): Body was moved to | |
31700 | __gcov_one_value_profiler_body and calls it | |
31701 | ||
31702 | 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net> | |
31703 | ||
31704 | * doc/gty.texi (Options): Document the mark_hook option to GTY. | |
31705 | * gengtype.c (write_types_data, write_func_for_structure, | |
31706 | write_types, ggc_wtd, pch_wtd): Add skip_hooks to | |
31707 | write_types_data, ggc_wtd, pch_wtd for processing mark_hook. | |
31708 | (walk_type, write_func_for_structure): Generate the mark_hook if | |
31709 | needed. | |
31710 | ||
31711 | 2007-01-19 Jan Hubicka <jh@suse.cz> | |
31712 | ||
31713 | * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of | |
31714 | 'early' argument take inlining mode argument specifying whether to | |
31715 | inline for size/speeed or all functions; add support for flattening; | |
31716 | improve dumpting. | |
31717 | (cgraph_early_inlining): Update call of decide_inlining_incrementally. | |
31718 | ||
31719 | 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
31720 | ||
31721 | PR c++/17947 | |
31722 | * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print | |
31723 | the name of the declared identifier. | |
31724 | ||
31725 | 2007-01-19 Dirk Mueller <dmueller@suse.de> | |
31726 | ||
31727 | * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store | |
31728 | result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid | |
31729 | duplicate evaluation. | |
31730 | ||
31731 | 2007-01-19 Uros Bizjak <ubizjak@gmail.com> | |
31732 | ||
31733 | * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2. | |
31734 | Macroize expander using X87MODEF12 mode macro. Extend operand 1 | |
31735 | to XFMode, use acosxf2 and truncate result to requested mode. | |
31736 | Use SSE_FLOAT_MODE_P to disable patterns for SSE math. | |
31737 | (asin<mode>2): Similarly, with asin expanders. | |
31738 | (*fscalexf4_i387): Rename from *fscalexf4. | |
31739 | (expNcorexf3): New expander. | |
31740 | (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander. | |
31741 | (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using | |
31742 | X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and | |
31743 | truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable | |
31744 | patterns for SSE math. | |
31745 | (exp10<mode>2): Similarly, with exp10 expanders. | |
31746 | (exp2<mode>2): Similarly, with exp2 expanders. | |
31747 | (expm1<mode>2): Similarly, with expm1 expanders. | |
31748 | (ldexp<mode>3): Similarly, with ldexp expanders. | |
31749 | (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2): | |
31750 | Use gen_truncxf<mode>2_i387_noop to truncate result. | |
31751 | ||
31752 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31753 | ||
31754 | * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32 | |
31755 | for ColdFire targets. | |
31756 | ||
31757 | 2007-01-19 Nathan Sidwell <nathan@codesourcery.com> | |
31758 | Richard Sandiford <richard@codesourcery.com> | |
31759 | ||
31760 | * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro. | |
31761 | (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM. | |
31762 | (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME. | |
31763 | * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override. | |
31764 | (M68K_STATIC_CHAIN_REG_NAME): Likewise. | |
31765 | * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise. | |
31766 | ||
31767 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31768 | ||
31769 | * config/m68k/m68k.md (adddi_dilshr32): Rename to... | |
31770 | (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out | |
31771 | non-canonical pattern. Restrict to !TARGET_COLDFIRE. | |
31772 | (*adddi_dilshr32_cf): New pattern. | |
31773 | (adddi3, subdi3): Remove first alternatives. | |
31774 | ||
31775 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31776 | ||
31777 | * config/m68k/m68k.c (notice_update_cc): If an SFmode move is | |
31778 | implemented using move.l, do not use its cc result for floating-point | |
31779 | comparisons. | |
31780 | ||
31781 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31782 | ||
31783 | * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint | |
31784 | from accepting 's' constraints if flag_pic. | |
31785 | ||
31786 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31787 | ||
31788 | * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt) | |
31789 | (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev) | |
31790 | (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change | |
31791 | condition from TARGET_68881 to TARGET_HARD_FLOAT. | |
31792 | ||
31793 | 2007-01-19 Sandra Loosemore <sandra@codesourcery.com> | |
31794 | ||
31795 | * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add | |
31796 | ColdFire alternatives. | |
31797 | * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro. | |
31798 | * config/m68k/m68k.md (clzsi2): Define for ColdFire | |
31799 | architectures that support ff1 instruction. | |
31800 | ||
31801 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31802 | Julian Brown <julian@codesourcery.com> | |
31803 | ||
31804 | * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case. | |
31805 | * config/m68k/m68k.md (*movsi_cfv4): Fold into... | |
31806 | (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'. | |
31807 | Add commentary. | |
31808 | ||
31809 | 2007-01-19 Richard Sandiford <richard@codesourcery.com> | |
31810 | ||
31811 | * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT | |
31812 | and return a bool. | |
31813 | (output_move_const_into_data_reg, output_move_simode_const): Delete. | |
31814 | * config/m68k/m68k.c (const_method, const_int_cost): Take a | |
31815 | HOST_WIDE_INT instead of an rtx. | |
31816 | (m68k_rtx_costs): Update call accordingly. | |
31817 | (output_move_const_into_data_reg): Likewise. Fix formatting. | |
31818 | (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx. | |
31819 | Return a bool. | |
31820 | (output_move_simode_const): Update calls after above changes. | |
31821 | Rework to use automatic variables and predicates like MEM_P. | |
31822 | * config/m68k/m68k.md (pushexthisi_const): Update call to | |
31823 | valid_mov3q_const. | |
31824 | ||
31825 | 2007-01-19 Dirk Mueller <dmueller@suse.de> | |
31826 | ||
31827 | * tree-ssa-alias.c (perform_var_substitution): Fix typo | |
31828 | in dump_flags test. | |
31829 | ||
31830 | 2007-01-19 Richard Guenther <rguenther@suse.de> | |
31831 | ||
31832 | * builtins.c (expand_builtin_cexpi): Fall back to expanding | |
31833 | via cexp in case sincos is not available. | |
31834 | ||
31835 | 2007-01-19 Richard Guenther <rguenther@suse.de> | |
31836 | ||
31837 | * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro. | |
31838 | * defaults.h (TARGET_HAS_SINCOS): Default to off. | |
31839 | * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc. | |
31840 | * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise. | |
31841 | * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise. | |
31842 | * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise. | |
31843 | * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise. | |
31844 | * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise. | |
31845 | ||
31846 | 2007-01-19 Uros Bizjak <ubizjak@gmail.com> | |
31847 | ||
31848 | * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387): | |
31849 | New insn patterns. | |
31850 | (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns. | |
31851 | (atan2xf3): Directly generate RTL pattern. | |
31852 | (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn | |
31853 | patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387 | |
31854 | and truncate result to requested mode. Use SSE_FLOAT_MODE_P to | |
31855 | disable patterns for SSE math. | |
31856 | (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn | |
31857 | patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387 | |
31858 | and truncate result to requested mode. Use SSE_FLOAT_MODE_P to | |
31859 | disable patterns for SSE math. | |
31860 | ||
31861 | 2007-01-19 Alexandre Oliva <aoliva@redhat.com> | |
31862 | ||
31863 | * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0. | |
31864 | ||
31865 | 2007-01-18 Roger Sayle <roger@eyesopen.com> | |
31866 | ||
31867 | * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a | |
31868 | VIEW_CONVERT_EXPR to the same type as it's operand. | |
31869 | ||
31870 | 2007-01-18 David Edelsohn <edelsohn@gnu.org> | |
31871 | ||
31872 | * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if | |
31873 | configured for long double 128. | |
31874 | ||
31875 | 2007-01-18 Mike Stump <mrs@apple.com> | |
31876 | ||
31877 | * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build | |
31878 | error. | |
31879 | ||
31880 | 2007-01-18 Michael Meissner <michael.meissner@amd.com> | |
31881 | ||
31882 | * config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's | |
31883 | in #if 0 code type correct. | |
31884 | ||
31885 | 2007-01-18 Jan Hubicka <jh@suse.cz> | |
31886 | ||
31887 | * tree-ssa-operands.c (vop_free_bucket_size): Never return value | |
31888 | greater than NUM_VOP_FREE_BUCKETS. | |
31889 | ||
31890 | 2007-01-18 Daniel Berlin <dberlin@dberlin.org> | |
31891 | ||
31892 | * tree-ssa-structalias.c: Update comments. | |
31893 | (ptabitmap_obstack): Removed. | |
31894 | (pta_obstack): New. | |
31895 | (oldpta_obstack): Ditto. | |
31896 | (stats): Add a few members. | |
31897 | (struct variable_info): Remove node, complex, address_taken, and | |
31898 | indirect_target members. Add oldsolution member. | |
31899 | (new_var_info): Do not initialize removed members. | |
31900 | (constraint_expr_type): Remove INCLUDES. | |
31901 | (constraint_graph): Add size, implicit_preds, rep, | |
31902 | indirect_cycles, eq_rep, label, direct_nodes, and complex members. | |
31903 | (FIRST_REF_NODE): New macro. | |
31904 | (LAST_REF_NODE): Ditto. | |
31905 | (FIRST_ADDR_NODE): Ditto. | |
31906 | (find): New function. | |
31907 | (unite): Ditto. | |
31908 | (dump_constraint): Do not handle INCLUDES. | |
31909 | (insert_into_complex): Do not insert duplicate constraints. | |
31910 | (condense_varmap_nodes): Renamed and rewritten into ... | |
31911 | (merge_node_constraints): This. Also fix bug in handling of | |
31912 | offseted copy constraints. | |
31913 | (clear_edges_for_node): No longer need to deal with preds at all, | |
31914 | or removing associated preds/succs. | |
31915 | (merge_graph_nodes): Deal with indirect_cycles. | |
31916 | Don't deal with predecessors. | |
31917 | (add_implicit_graph_edge): New function. | |
31918 | (add_pred_graph_edge): Ditto. | |
31919 | (add_graph_edge): Don't deal with predecessors. | |
31920 | (build_constraint_graph): Removed. | |
31921 | (build_pred_graph): New function. | |
31922 | (build_succ_graph): Ditto. | |
31923 | (struct scc_info): Removed in_component. Added roots, dfs, and | |
31924 | node_mapping. Remove visited_index, unification_queue. | |
31925 | (scc_visit): Deal with union-find we do now. | |
31926 | Deal with cycles with REF nodes. | |
31927 | (collapse_nodes): Renamed and rewritten to ... | |
31928 | (unify_nodes): This. | |
31929 | (process_unification_queue): Removed. | |
31930 | (topo_visit): Cleanup | |
31931 | (do_da_constraint): Use find. | |
31932 | (do_sd_constraint): Ditto. | |
31933 | (do_ds_constraint): Ditto. | |
31934 | (do_complex_constraint): Ditto. | |
31935 | (init_scc_info): Update for removed and added members. | |
31936 | (find_and_collapse_graph_cycles): Renamed and rewritten into ... | |
31937 | (find_indirect_cycles): This. | |
31938 | (equivalence_class): New variable. | |
31939 | (label_visit): New function. | |
31940 | (perform_variable_substitution): Rewritten. | |
31941 | (free_var_substitution_info): New function. | |
31942 | (find_equivalent_node): Ditto. | |
31943 | (move_complex_constraints): Ditto. | |
31944 | (eliminate_indirect_cycles): Ditto. | |
31945 | (solve_graph): Only propagate changed bits. | |
31946 | Use indirect cycle elimination. | |
31947 | Use find. | |
31948 | (tree_id_t): Rename to tree_vi_t, delete id member, add vi member. | |
31949 | (tree_id_eq): Renamed to ... | |
31950 | (tree_vi_eq): This. Update for member change | |
31951 | (insert_id_for_tree): Renamed and rewritten to ... | |
31952 | (insert_vi_for_tree): This. | |
31953 | (lookup_id_for_tree): Renamed and rewritten to ... | |
31954 | (lookup_vi_for_tree): This. | |
31955 | (get_id_for_tree): Renamed and rewritten to ... | |
31956 | (get_vi_for_tree): Ditto. | |
31957 | (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree. | |
31958 | (process_constraint): Don't handle INCLUDES. | |
31959 | Remove special ADDRESSOF case. | |
31960 | (find_func_aliases): Rewrite to use vi functions instead of id | |
31961 | ones. | |
31962 | (create_function_info_for): Ditto. | |
31963 | (create_variable_info_for): Ditto. | |
31964 | (intra_create_variable_infos): Ditto. | |
31965 | (merge_smts_into): Ditto. | |
31966 | (find_what_p_points_to): Ditto. | |
31967 | (init_base_vars): Ditto. | |
31968 | (init_alias_vars): Ditto. | |
31969 | (remove_preds_and_fake_succs): New function. | |
31970 | (dump_sa_points_to_info): Dump new stats. | |
31971 | (dump_solution_for_var): Use find. | |
31972 | (set_used_smts): Fix formatting. | |
31973 | (compute_points_to_sets): Updated for new functions. | |
31974 | (ipa_pta_execute): Ditto. | |
31975 | ||
31976 | 2007-01-18 Kazu Hirata <kazu@codesourcery.com> | |
31977 | Richard Sandiford <richard@codesourcery.com> | |
31978 | ||
31979 | * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of | |
31980 | parallels. | |
31981 | * calls.c (expand_call): If the return value is a PARALLEL, | |
31982 | extract its first member. | |
31983 | * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove. | |
31984 | * config/m68k/m68k.c (m68k_output_function_epilogue): Don't | |
31985 | use FUNCTION_EXTRA_EPILOGUE. | |
31986 | (m68k_function_value): Return a PARALLEL if the return value | |
31987 | is of a pointer type. | |
31988 | * config/m68k/netbsd-elf.h (current_function_returns_pointer) | |
31989 | (FUNCTION_EXTRA_EPILOGUE): Remove. | |
31990 | * config/m68k/m68k.md (D0_REG): New constant. | |
31991 | ||
31992 | 2007-01-18 Kazu Hirata <kazu@codesourcery.com> | |
31993 | ||
31994 | * config/m68k/m68k.c (m68k_output_function_epilogue): Don't | |
31995 | output a NOP for empty epilogues. | |
31996 | ||
31997 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
31998 | ||
31999 | * config/m68k/m68k.c (m68k_use_return_insn): Update comments | |
32000 | before function. Extend register save check to include all | |
32001 | registers, not just integer ones. | |
32002 | ||
32003 | 2007-01-18 Kazu Hirata <kazu@codesourcery.com> | |
32004 | ||
32005 | * config/m68k/m68k-protos.h (use_return_insn): Rename to... | |
32006 | (m68k_use_return_insn): ...this. | |
32007 | * config/m68k/m68k.h (USE_RETURN_INSN): Delete. | |
32008 | * config/m68k/m68k.c (use_return_insn): Rename to... | |
32009 | (m68k_use_return_insn): ...this. | |
32010 | * config/m68k/m68k.md (return): Use m68k_use_return_insn instead | |
32011 | of USE_RETURN_INSN. | |
32012 | ||
32013 | 2007-01-18 Nathan Sidwell <nathan@codesourcery.com> | |
32014 | ||
32015 | * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to | |
32016 | nearest even, fix denormal rounding overflow. | |
32017 | ||
32018 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32019 | ||
32020 | * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of | |
32021 | f%$smove and f%$move. | |
32022 | (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1. | |
32023 | (extendsfdf2_cf): Use fdmove instead of f%&move. | |
32024 | (truncdfsf2_cf): Use fsmove instead of f%$smove. | |
32025 | (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>. | |
32026 | ||
32027 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32028 | ||
32029 | * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for | |
32030 | GPR<-GPR moves. | |
32031 | ||
32032 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32033 | ||
32034 | * real.h (real_format): Add a canonical_nan_lsbs_set field. | |
32035 | (coldfire_single_format): Declare. | |
32036 | (coldfire_double_format): Likewise. | |
32037 | * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead | |
32038 | of qnan_msb_set to determine the lower bits of a canonical | |
32039 | NaN significand. | |
32040 | (encode_ieee_double): Likewise. | |
32041 | (encode_ieee_quad): Likewise. | |
32042 | (ieee_single_format): Initialize canonical_nan_lsbs_set. | |
32043 | (mips_single_format): Likewise. | |
32044 | (ieee_double_format): Likewise. | |
32045 | (mips_double_format): Likewise. | |
32046 | (ieee_extended_motorola_format): Likewise. | |
32047 | (ieee_extended_intel_96_format): Likewise. | |
32048 | (ieee_extended_intel_128_format): Likewise. | |
32049 | (ieee_extended_intel_96_round_53_format): Likewise. | |
32050 | (ibm_extended_format): Likewise. | |
32051 | (mips_extended_format): Likewise. | |
32052 | (ieee_quad_format): Likewise. | |
32053 | (mips_quad_format): Likewise. | |
32054 | (vax_f_format): Likewise. | |
32055 | (vax_d_format): Likewise. | |
32056 | (vax_g_format): Likewise. | |
32057 | (i370_single_format): Likewise. | |
32058 | (i370_double_format): Likewise. | |
32059 | (decimal_single_format): Likewise. | |
32060 | (decimal_double_format): Likewise. | |
32061 | (decimal_quad_format): Likewise. | |
32062 | (c4x_single_format): Likewise. | |
32063 | (c4x_extended_format): Likewise. | |
32064 | (real_internal_format): Likewise. | |
32065 | (coldfire_single_format): New real_format. | |
32066 | (coldfire_double_format): Likewise. | |
32067 | * config/pdp11/pdp11.c (pdp11_f_format): Initialize | |
32068 | canonical_nan_lsbs_set. | |
32069 | (pdp11_d_format): Likewise. | |
32070 | * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE | |
32071 | if TARGET_COLDFIRE_CPU. | |
32072 | ||
32073 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32074 | ||
32075 | * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete. | |
32076 | (output_call, m68k_legitimize_call_address): Declare. | |
32077 | * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary | |
32078 | parenthesees. Add support for a 'W' constraint. | |
32079 | (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling. | |
32080 | (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'. | |
32081 | (m68k_symbolic_call, m68k_symbolic_jump): Declare. | |
32082 | * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New | |
32083 | variables. | |
32084 | (override_options): Initialize them. Do not set flag_no_function_cse | |
32085 | for TARGET_ID_SHARED_LIBRARY. | |
32086 | (m68k_output_pic_call): Delete. | |
32087 | (m68k_legitimize_call_address): New function. | |
32088 | (print_operand): Remove the %o prefix. Handle the %p prefix. | |
32089 | (output_call): New function. | |
32090 | (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the | |
32091 | target address from the GOT if symbolic jumps are not allowed. | |
32092 | * config/m68k/m68k.md (call, general_operand): Do not set | |
32093 | SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead. | |
32094 | Merge separate flag_pic and !flag_pic define_insns into... | |
32095 | (*call, *call_value): ...these new patterns. Match the address | |
32096 | rather than the containing MEM and require it to be a call_operand. | |
32097 | Use output_call to generate the asm template. | |
32098 | * config/m68k/predicates.md (const_call_operand): New predicate. | |
32099 | (call_operand): Likewise. | |
32100 | ||
32101 | 2007-01-18 Nathan Sidwell <nathan@codesourcery.com> | |
32102 | ||
32103 | * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition. | |
32104 | (STACK_GROWS_DOWNWARD): Define to 1. | |
32105 | (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate | |
32106 | comments, emphasizing that these values are only defaults. | |
32107 | * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef. | |
32108 | * config/m68k/m68k.c (const_method): Remove trailing whitespace. | |
32109 | ||
32110 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32111 | ||
32112 | * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling. | |
32113 | ||
32114 | 2007-01-18 Kazu Hirata <kazu@codesourcery.com> | |
32115 | Richard Sandiford <richard@codesourcery.com> | |
32116 | ||
32117 | * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P) | |
32118 | (FP_REGNO_P): New macros. | |
32119 | (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P) | |
32120 | (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them. | |
32121 | (EH_RETURN_STACKADJ_RTX): Use A0_REG. | |
32122 | * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros. | |
32123 | ||
32124 | 2007-01-18 Nathan Sidwell <nathan@codesourcery.com> | |
32125 | ||
32126 | * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) | |
32127 | (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib | |
32128 | to $tmake_file. | |
32129 | * config/m68k/t-floatlib: New file, extracting common code from... | |
32130 | * config/m68k/t-m68kbare, config/m68k/t-m68kelf, | |
32131 | * config/m68k/t-uclinux: Here. | |
32132 | * config/m68k/fpgnulib.c: Do not compile extendeed precision | |
32133 | routines on ColdFire targets. | |
32134 | ||
32135 | 2007-01-18 Nathan Sidwell <nathan@codesourcery.com> | |
32136 | ||
32137 | * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) | |
32138 | (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*) | |
32139 | (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*) | |
32140 | (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and | |
32141 | explicitly set MOTOROLA to 1. | |
32142 | * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly. | |
32143 | ||
32144 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32145 | Nathan Sidwell <nathan@codesourcery.com> | |
32146 | ||
32147 | * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete. | |
32148 | (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases. | |
32149 | * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete. | |
32150 | * config/m68k/m68020-elf.h (LIB_SPEC): Delete. | |
32151 | * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete. | |
32152 | * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD) | |
32153 | (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete. | |
32154 | (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine. | |
32155 | (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete. | |
32156 | * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine. | |
32157 | * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE) | |
32158 | (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete. | |
32159 | (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here. | |
32160 | (DBX_REGISTER_NUMBER): Delete. | |
32161 | * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete. | |
32162 | (PCC_STATIC_STRUCT_RETURN): Don't undefine. | |
32163 | * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define. | |
32164 | ||
32165 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32166 | ||
32167 | * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file. | |
32168 | * config/flat.h: New file. | |
32169 | * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if | |
32170 | OBJECT_FORMAT_FLAT. | |
32171 | * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use | |
32172 | indirect references for -msep-data or -mid-shared-library. | |
32173 | Do not use PC-relative code addresses either. | |
32174 | * config/m68k/m68k.c (override_options): Restrict -fPIC error | |
32175 | to -mpcrel. | |
32176 | * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o | |
32177 | for shared libraries and crt1.o for executables. Use crti.o and | |
32178 | crtbegin.o. | |
32179 | (ENDFILE_SPEC): Use crtend.o and crtn.o. | |
32180 | (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given. | |
32181 | Do not add -elf2flt or -shared-lib-id options here. | |
32182 | (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given. | |
32183 | Pass -shared-lib-id if -mid-shared-library, taking the library | |
32184 | identifier from -mshared-library-id if given, otherwise | |
32185 | defaulting to 0. | |
32186 | (EH_FRAME_IN_DATA_SECTION): Do not undefine. | |
32187 | (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise. | |
32188 | (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0 | |
32189 | and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library. | |
32190 | (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data. | |
32191 | * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o | |
32192 | and crtend.o. | |
32193 | * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative | |
32194 | jump sequence for ISA A and ISA A+. | |
32195 | (PICJUMP): Likewise. | |
32196 | ||
32197 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32198 | ||
32199 | * config.gcc (m68k-*-uclinux*): Base the port on the common | |
32200 | and m68k GNU/Linux files rather than on the generic ELF ones. | |
32201 | * config/m68k/uclinux.h (TARGET_VERSION): Override. | |
32202 | (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS. | |
32203 | ||
32204 | 2007-01-18 Julian Brown <julian@codesourcery.com> | |
32205 | Richard Sandiford <richard@codesourcery.com> | |
32206 | ||
32207 | * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire. | |
32208 | (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise. | |
32209 | * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine | |
32210 | before redefining. | |
32211 | * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to | |
32212 | 80 unconditionally. | |
32213 | (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise. | |
32214 | ||
32215 | 2007-01-18 Richard Sandiford <richard@codesourcery.com> | |
32216 | ||
32217 | * doc/install.texi: Document m68k-uclinuxoldabi. | |
32218 | * config.gcc (m68k-*-uclinuxoldabi): New configuration. | |
32219 | * config/m68k/uclinux-oldabi.h: New file, copied from | |
32220 | config/m68k/uclinux.h. | |
32221 | ||
32222 | 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp> | |
32223 | ||
32224 | * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it. | |
32225 | * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem. | |
32226 | (m32r_compute_frame_size): Use unsigned for regno. | |
32227 | (m32r_reload_lr): Use gen_frame_mem. | |
32228 | (pop): New. | |
32229 | (m32r_output_function_epilogue): Don't output the function epilogue | |
32230 | textually here. | |
32231 | (m32r_expand_epilogue): New. | |
32232 | (direct_return): Return false if the function has the interrupt | |
32233 | attribute. | |
32234 | (m32r_hard_regno_rename_ok): Remove code for the textual epilogue. | |
32235 | * config/m32r/m32r.md (epilogue): New expander. | |
32236 | (return_lr, return_rte): New insns. | |
32237 | (return): Make it expander. | |
32238 | (return_normal): New expander. | |
32239 | ||
32240 | 2007-01-18 Josh Conner <jconner@apple.com> | |
32241 | ||
32242 | PR target/30485 | |
32243 | * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add | |
32244 | support for UNLE, UNLT, UNGE, and UNGT. | |
32245 | ||
32246 | 2007-01-18 Jan Hubicka <jh@suse.cz> | |
32247 | ||
32248 | * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand. | |
32249 | * tree-tailcall (add_virtual_phis): Likewise. | |
32250 | (optimize_tail_call): Return TODOs. | |
32251 | (execute_tail_calls): Return TODOs. | |
32252 | * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO. | |
32253 | * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something | |
32254 | changed. | |
32255 | * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value): | |
32256 | Cleanup cfg using TODO. | |
32257 | * tree-flow.h (cleanup_tree_cfg_loop): Update prototype. | |
32258 | * passes.c (execute_function_todo): When cleanup did something, remove | |
32259 | unused locals. | |
32260 | * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO. | |
32261 | (make_edges): Don't cleanup_cfg. | |
32262 | ||
32263 | 2007-01-18 Uros Bizjak <ubizjak@gmail.com> | |
32264 | ||
32265 | * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS, | |
32266 | UNSPEC_XTRACT_FRACT]: Use generic code for instructions that | |
32267 | operate on the top of stack. | |
32268 | [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite | |
32269 | register handling of instructions that output to the second | |
32270 | stack slot. | |
32271 | [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove. | |
32272 | (move_for_stack_reg): Special-case check for dead destination | |
32273 | stack slot for constant load of 1.0 inside UNSPEC_TAN. | |
32274 | ||
32275 | * config/i386/i386.md (UNSPEC_TAN): New constant. | |
32276 | (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove. | |
32277 | (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns | |
32278 | to correctly model move of constant 1.0 to top stack slot. | |
32279 | (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns. | |
32280 | (unnamed peephole2 pattern): Remove corresponding peephole2 | |
32281 | pattern that optimizes tan insn and loading of constant 1.0. | |
32282 | (tanxf2): Use fptanxf4_i387. | |
32283 | (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn | |
32284 | patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387 | |
32285 | and truncate result to requested mode. Use SSE_FLOAT_MODE_P to | |
32286 | disable patterns for SSE math. | |
32287 | (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation. | |
32288 | (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1. | |
32289 | ||
32290 | 2007-01-18 Dirk Mueller <dmueller@suse.de> | |
32291 | Richard Guenther <rguenther@suse.de> | |
32292 | ||
32293 | PR diagnostic/8268 | |
32294 | * doc/invoke.texi (Warray-bounds): Document -Warray-bounds. | |
32295 | * common.opt (Warray-bounds): Add new warning option. | |
32296 | * c-opts.c (c_common_handle_option): Define -Warray-bounds | |
32297 | if -Wall is given. | |
32298 | * Makefile.in: make tree-vrp.o depend on toplev.h | |
32299 | * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds | |
32300 | is enabled. | |
32301 | (check_array_refs, check_array_bounds, check_array_ref): New. | |
32302 | ||
32303 | 2007-01-18 Jan Hubicka <jh@suse.cz> | |
32304 | ||
32305 | * tree-ssa-ccp.c (ccp_finalize): Return if something changed. | |
32306 | (execute_ssa_ccp): Return flags conditionally. | |
32307 | * tree-ssa-propagate.c (substitue_and_fold): Return if something was | |
32308 | changed. | |
32309 | * tree-ssa-propagate.h (substitute_and_fold): Update prototype. | |
32310 | ||
32311 | 2007-01-18 Steven Bosscher <steven@gcc.gnu.org> | |
32312 | ||
32313 | * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set | |
32314 | the CLEANUP_CFGLAYOUT flag when in cfglayout mode. | |
32315 | ||
32316 | * Makefile.c (GTFILES): Add cfglayout.h. | |
32317 | * gengtype.c (open_base_files): Likewise. | |
32318 | * cfglayout.c (cfg_layout_function_footer, | |
32319 | cfg_layout_function_header) Reindent to make gengtype happy. | |
32320 | * cfglayout.h (cfg_layout_function_footer, | |
32321 | cfg_layout_function_header): Add GTY(()) marker. | |
32322 | ||
32323 | * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null. | |
32324 | ||
32325 | 2007-01-18 Ben Elliston <bje@au.ibm.com> | |
32326 | ||
32327 | * genautomata.c (write_automata): Include xstrerror output in the | |
32328 | error message if writing the DFA description file fails. | |
32329 | ||
32330 | 2007-01-17 H.J. Lu <hongjiu.lu@intel.com> | |
32331 | ||
32332 | * config/mips/mips-protos.h (mips_output_external): Make it | |
32333 | return void. | |
32334 | * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed. | |
32335 | * config/mips/mips.c (irix_output_external_libcall): Likewise. | |
32336 | (extern_list): Likewise. | |
32337 | (extern_head): Likewise. | |
32338 | (TARGET_ASM_FILE_END): Likewise. | |
32339 | (mips_file_end): Likewise. | |
32340 | (mips_output_external): Rewritten. | |
32341 | ||
32342 | 2007-01-18 Ben Elliston <bje@au.ibm.com> | |
32343 | ||
32344 | * genpreds.c (write_insn_preds_c): Only write out the function | |
32345 | body for regclass_for_constraint if we have register constraints. | |
32346 | ||
32347 | 2007-01-17 Tom Tromey <tromey@redhat.com> | |
32348 | ||
32349 | * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org. | |
32350 | * doc/install.texi (Testing): Use sourceware.org. | |
32351 | (Binaries): Likewise. | |
32352 | (Specific): Likewise. | |
32353 | * doc/contrib.texi (Contributors): Use sourceware.org. | |
32354 | ||
32355 | 2007-01-17 Anatoly Sokolov <aesok@post.ru> | |
32356 | ||
32357 | * config/avr/avr.h (AVR_HAVE_LPMX): New macro. | |
32358 | (AVR_ENHANCED): Rename to ... | |
32359 | (AVR_HAVE_MUL): ... new. | |
32360 | (avr_enhanced_p): Rename to ... | |
32361 | (avr_have_mul_p): ... new. | |
32362 | (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of | |
32363 | 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__". | |
32364 | * config/avr/avr.c (avr_enhanced_p): Rename to ... | |
32365 | (avr_have_mul_p): ... new. | |
32366 | (base_arch_s): Rename 'enhanced' to 'have_mul'. | |
32367 | (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of | |
32368 | 'avr_enhanced_p' and 'enhanced'. | |
32369 | (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use | |
32370 | AVR_HAVE_MUL instead of AVR_ENHANCED. | |
32371 | * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED. | |
32372 | (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, | |
32373 | *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL | |
32374 | instead of AVR_ENHANCED. | |
32375 | (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED. | |
32376 | * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__. | |
32377 | (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__. | |
32378 | ||
32379 | 2007-01-17 Ian Lance Taylor <iant@google.com> | |
32380 | ||
32381 | * vec.h (VEC_reserve_exact): Define. | |
32382 | (vec_gc_p_reserve_exact): Declare. | |
32383 | (vec_gc_o_reserve_exact): Declare. | |
32384 | (vec_heap_p_reserve_exact): Declare. | |
32385 | (vec_heap_o_reserve_exact): Declare. | |
32386 | (VEC_OP (T,A,reserve_exact)): New static inline function, three | |
32387 | versions. | |
32388 | (VEC_OP (T,A,reserve)) [all versions]: Remove handling of | |
32389 | negative parameter. | |
32390 | (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact. | |
32391 | (VEC_OP (T,A,copy)) [all versions]: Likewise. | |
32392 | (VEC_OP (T,a,safe_grow)) [all versions]: Likewise. | |
32393 | * vec.c (calculate_allocation): Add exact parameter. Change all | |
32394 | callers. | |
32395 | (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve. | |
32396 | (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1. | |
32397 | (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions. | |
32398 | (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve. | |
32399 | (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1. | |
32400 | (vec_heap_p_reserve_exact): New function. | |
32401 | (vec_heap_o_reserve_exact): New function. | |
32402 | ||
32403 | 2007-01-17 Jan Hubicka <jh@suse.cz> | |
32404 | ||
32405 | * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p. | |
32406 | ||
32407 | 2007-01-17 Eric Christopher <echristo@apple.com> | |
32408 | ||
32409 | * config.gcc: Support core2 processor. | |
32410 | ||
32411 | 2007-01-16 Jan Hubicka <jh@suse.cz> | |
32412 | ||
32413 | * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing | |
32414 | the names, just unlink the chain so we don't crash on dangling | |
32415 | pointers | |
32416 | to dead SSA names. | |
32417 | ||
32418 | 2007-01-16 Jan Hubicka <jh@suse.cz> | |
32419 | ||
32420 | * cgraph.h (cgraph_decide_inlining_incrementally): Kill. | |
32421 | * tree-pass.h: Reorder to make IPA passes appear toegher. | |
32422 | (pass_early_inline, pass_inline_parameters, pass_apply_inline): | |
32423 | Declare. | |
32424 | * cgraphunit.c (cgraph_finalize_function): Do not compute inling | |
32425 | parameters, do not call early inliner. | |
32426 | * ipa-inline.c: Update comments. Include tree-flow.h | |
32427 | (cgraph_decide_inlining): Do not compute inlining parameters. | |
32428 | (cgraph_decide_inlining_incrementally): Return TODOs; assume to | |
32429 | be called with function context set up. | |
32430 | (pass_ipa_inline): Remove unreachable functions before pass. | |
32431 | (cgraph_early_inlining): Simplify assuming to be called from the | |
32432 | PM as local pass. | |
32433 | (pass_early_inline): New pass. | |
32434 | (cgraph_gate_ipa_early_inlining): New gate. | |
32435 | (pass_ipa_early_inline): Turn into simple wrapper. | |
32436 | (compute_inline_parameters): New function. | |
32437 | (gate_inline_passes): New gate. | |
32438 | (pass_inline_parameters): New pass. | |
32439 | (apply_inline): Move here from tree-optimize.c | |
32440 | (pass_apply_inline): New pass. | |
32441 | * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after | |
32442 | transforming. | |
32443 | * tree-inline.c (optimize_inline_calls): Return TODOs rather than | |
32444 | doing them by hand. | |
32445 | (tree_function_versioning): Do not allocate dummy struct function. | |
32446 | * tree-inline.h (optimize_inline_calls): Update prototype. | |
32447 | * tree-optimize.c (execute_fixup_cfg): Export. | |
32448 | (pass_fixup_cfg): Remove | |
32449 | (tree_rest_of_compilation): Do not apply inlines. | |
32450 | * tree-flow.h (execute_fixup_cfg): Declare. | |
32451 | * Makefile.in (gt-passes.c): New. | |
32452 | * passes.c: Include gt-passes.h | |
32453 | (init_optimization_passes): New passes. | |
32454 | (nnodes, order): New static vars. | |
32455 | (do_per_function_toporder): New function. | |
32456 | (execute_one_pass): Dump current pass here. | |
32457 | (execute_ipa_pass_list): Don't dump current pass here. | |
32458 | ||
32459 | 2007-01-16 Janis Johnson <janis187@us.ibm.com> | |
32460 | ||
32461 | * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN. | |
32462 | (DFP_NE, DFP_LE, DFP_GE): Return false for NaN. | |
32463 | ||
32464 | 2007-01-16 David Edelsohn <edelsohn@gnu.org> | |
32465 | ||
32466 | * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT. | |
32467 | (strong_alias): Define. | |
32468 | (__gcc_qmul): Provide non-FMA for soft-float. | |
32469 | (__gcc_qdiv): Same. | |
32470 | (__gcc_qneg): New. | |
32471 | (__gcc_qeq): New. | |
32472 | (__gcc_qle): New. | |
32473 | (__gcc_qge): New. | |
32474 | (__gcc_qunord): New. | |
32475 | (__gcc_stoq): New. | |
32476 | (__gcc_dtoq): New. | |
32477 | (__gcc_qtos): New. | |
32478 | (__gcc_qtod): New. | |
32479 | (__gcc_qtoi): New. | |
32480 | (__gcc_qtou): New. | |
32481 | (__gcc_itoq): New. | |
32482 | (__gcc_utoq): New. | |
32483 | (fmsub): New. | |
32484 | * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize | |
32485 | soft-float functions. | |
32486 | * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols. | |
32487 | * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn | |
32488 | about long double soft float. | |
32489 | ||
32490 | 2007-01-16 Dorit Nuzman <dorit@il.ibm.com> | |
32491 | Tehila Meyzels <tehila@il.ibm.com> | |
32492 | ||
32493 | * tree-vectorizer.h (is_pattern_stmt_p): New. | |
32494 | * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix | |
32495 | formatting (tabs instead of spaces). Cleanup and clarify setting | |
32496 | of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p. | |
32497 | * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo. | |
32498 | (vectorizable_type_demotion): Check that types are integral. | |
32499 | (vectorizable_type_promotion): Likewise. | |
32500 | (vectorizable_store): Fix typo. Eliminate new-line at end of | |
32501 | comments. | |
32502 | ||
32503 | 2007-01-16 Jan Hubicka <jh@suse.cz> | |
32504 | ||
32505 | * tree-ssanames.c (release_dead_ssa_names): Remove invalidated | |
32506 | cgraph edges too. | |
32507 | ||
32508 | 2007-01-15 Eric Christopher <echristo@apple.com> | |
32509 | ||
32510 | * ifcvt.c: Include vec.h, vecprim.h. | |
32511 | (check_cond_move_block): New argument regs. | |
32512 | Reorganize. Add registers used to regs. | |
32513 | (cond_move_process_if_block): Use regs set above as | |
32514 | loop bounds. | |
32515 | ||
32516 | 2007-01-15 Eric Christopher <echristo@apple.com> | |
32517 | ||
32518 | * config/darwin.h: Update copyright. | |
32519 | (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella. | |
32520 | (LINK_COMMAND_SPEC): Add -u. | |
32521 | (LINK_SPEC): Fix umbrella for above. | |
32522 | ||
32523 | 2007-01-15 Joseph S. Myers <joseph@codesourcery.com> | |
32524 | ||
32525 | * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from | |
32526 | glibc CVS. | |
32527 | ||
32528 | 2007-01-15 Tom Tromey <tromey@redhat.com> | |
32529 | ||
32530 | * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks. | |
32531 | * doc/install.texi (Testing): Don't mention jacks. | |
32532 | (Configuration): Document --enable-java-maintainer-mode. Move | |
32533 | --with-java-home to libgcj-specific section. Document | |
32534 | --with-ecj-jar. | |
32535 | (Prerequisites): Mention --enable-java-maintainer-mode, ecj1. | |
32536 | ||
32537 | 2007-01-15 Jan Hubicka <jh@suse.cz> | |
32538 | ||
32539 | * tree-ssa-dce.c (DCE_TODOs): New. | |
32540 | (propagate_necessity): Return if something changed. | |
32541 | (eliminate_unnecessary_stmts): Likewise. | |
32542 | (perform_tree_ssa_dce): Return TODO flags when needed. | |
32543 | (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags. | |
32544 | ||
32545 | 2007-01-15 Uros Bizjak <ubizjak@gmail.com> | |
32546 | ||
32547 | * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3. | |
32548 | (fyl2x_extend<mode>xf3_i387): New insn pattern. | |
32549 | (log<mode>2): Rename from logsf2 and logdf2 and macroize insn | |
32550 | patterns using X87MODEF12 mode macro. Extend operand 1 | |
32551 | to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math. | |
32552 | (log10<mode>2): Ditto. | |
32553 | (log2<mode>2): Ditto. | |
32554 | (log1p<mode>2): Ditto. | |
32555 | (logb<mode>2): Ditto. | |
32556 | (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3. | |
32557 | (fyl2xp1_extend<mode>xf3_i387): New insn pattern. | |
32558 | (*fxtractxf3_i387): Rename from *fxtractxf3. | |
32559 | (fxtract_extend<mode>xf3_i387): New insn pattern. | |
32560 | (ilogbsi2): Use match_dup 3, not match_operand:XF 3. | |
32561 | * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387() | |
32562 | and gen_fyl2xxf3_i387(). | |
32563 | ||
32564 | 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz> | |
32565 | ||
32566 | * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement. | |
32567 | * cfgloopmanip.c (fix_loop_placement): Made static. Use | |
32568 | get_loop_exit_edges. Changed return type to bool. | |
32569 | * cfgloop.h (fix_loop_placement): Declaration removed. | |
32570 | ||
32571 | 2007-01-14 Dorit Nuzman <dorit@il.ibm.com> | |
32572 | ||
32573 | * param.h (MIN_VECT_LOOP_BOUND): New. | |
32574 | * params.def (MIN_VECT_LOOP_BOUND): New. | |
32575 | * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another | |
32576 | argument - minimum threshold for number of iterations. | |
32577 | * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another | |
32578 | argument to declaration. | |
32579 | * tree-vect-analyze.c (vect_analyze_operations): Check value of | |
32580 | MIN_VECT_LOOP_BOUND. | |
32581 | * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call | |
32582 | slpeel_tree_peel_loop_to_edge with additional argument. | |
32583 | (vect_do_peeling_for_alignment): Likewise. | |
32584 | * doc/invoke.texi (min-vect-loop-bound): Document new param option. | |
32585 | ||
32586 | 2007-01-14 Uros Bizjak <ubizjak@gmail.com> | |
32587 | ||
32588 | PR target/30413 | |
32589 | * config/i386/i386.c (print_operand) ['z']: Output 'b' for | |
32590 | operands of size 1. | |
32591 | ||
32592 | 2007-01-14 Jan Hubicka <jh@suse.cz> | |
32593 | ||
32594 | * tree-dfa.c (remove_referenced_var): New function. | |
32595 | * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and | |
32596 | prune referenced vars list too. | |
32597 | * tree-flow.h (remove_referenced_var): Declare. | |
32598 | ||
32599 | 2007-01-14 Jan Hubicka <jh@suse.cz> | |
32600 | ||
32601 | * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs | |
32602 | separately. | |
32603 | (remove_stmt_from_eh_region_fn): Do not remove call_exprs. | |
32604 | (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill. | |
32605 | * except.h (verify_eh_throw_table_statements): Kill prototype. | |
32606 | * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions | |
32607 | into call exrepssions. | |
32608 | * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call | |
32609 | eh trhow verifier. | |
32610 | * tree-cfg.c: Include pointer-set.h. | |
32611 | (verify_node_sharing): Work on pointer set. | |
32612 | (verify_eh_throw_stmt_node): New. | |
32613 | (verify_stmts): Use pointers sets, verify throw_stmt. | |
32614 | ||
32615 | 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz> | |
32616 | ||
32617 | * ipa-reference.c (analyze_function): Consider also addresses taken | |
32618 | in phi nodes. | |
32619 | ||
32620 | 2007-01-12 Roger Sayle <roger@eyesopen.com> | |
32621 | ||
32622 | * c-typeck.c (null_pointer_constant_p): Replace use of | |
32623 | TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. | |
32624 | (build_c_cast): Likewise. | |
32625 | ||
32626 | 2007-01-12 Roger Sayle <roger@eyesopen.com> | |
32627 | ||
32628 | * tree.h (force_fit_type_double): Remove unused final argument. | |
32629 | * c-common.c (constant_expression_warning): Replace use of | |
32630 | TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. | |
32631 | (convert_and_check): Likewise. | |
32632 | (shorten_compare): Update call to force_fit_type_double. | |
32633 | (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop. | |
32634 | * convert.c (convert_to_pointer): Update call to | |
32635 | force_fit_type_double. | |
32636 | * fold-const.c (force_fit_type_double): Remove overflowed_const | |
32637 | argument. | |
32638 | (int_const_binop, fold_convert_const_int_from_int, | |
32639 | fold_convert_const_int_from_real, fold_div_compare, | |
32640 | fold_sign_changed_comparison, fold_unary, fold_negate_const, | |
32641 | fold_abs_const, fold_not_const): Remove the final argument from | |
32642 | calls to force_fit_type_double. | |
32643 | ||
32644 | 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
32645 | ||
32646 | * configure.ac: Set insn to "nop" for spu-*-* also. | |
32647 | * configure: Regenerate. | |
32648 | ||
32649 | 2007-01-12 Olga Golovanevsky <olga@il.ibm.com> | |
32650 | ||
32651 | * builtins.def : Add BUILT_IN_FREE. | |
32652 | ||
32653 | 2007-01-12 Jan Hubicka <jh@suse.cz> | |
32654 | ||
32655 | PR tree-optimization/30443 | |
32656 | * tree-inline.c (tree_function_versioning): Do not optimize when | |
32657 | cloning for inlining. | |
32658 | ||
32659 | 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz> | |
32660 | ||
32661 | * doc/loop.texi: Document recording of loop exits. | |
32662 | * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop. | |
32663 | (update_single_exits_after_duplication, | |
32664 | update_single_exit_for_duplicated_loop, | |
32665 | update_single_exit_for_duplicated_loops): Removed. | |
32666 | (duplicate_loop_to_header_edge): Do not call | |
32667 | update_single_exits_after_duplication and | |
32668 | update_single_exit_for_duplicated_loops. | |
32669 | (loop_version): Do not update single_exit information. | |
32670 | (fix_loop_structure): Use record_loop_exits instead of | |
32671 | mark_single_exit_loops. | |
32672 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update | |
32673 | the lists of loop exits. | |
32674 | * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force, | |
32675 | split_edge, merge_blocks): Update the lists of loop exits. | |
32676 | * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to | |
32677 | loop_optimizer_init. | |
32678 | * loop-init.c (loop_optimizer_init): Call record_loop_exits instead | |
32679 | of mark_single_exit_loops. | |
32680 | (loop_optimizer_finalize): Call release_recorded_exits. | |
32681 | * tree-ssa-loop.c (tree_loop_optimizer_init): Pass | |
32682 | LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init. | |
32683 | * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not | |
32684 | update single exit information. | |
32685 | * lambda-code.c (perfect_nestify): Ditto. | |
32686 | * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop. | |
32687 | (mark_single_exit_loops): Removed. | |
32688 | (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free, | |
32689 | get_exit_descriptions, rescan_loop_exit, record_loop_exits, | |
32690 | dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New | |
32691 | functions. | |
32692 | (get_loop_exit_edges, single_exit): Use recorded exit lists. | |
32693 | (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits. | |
32694 | (verify_loop_structure): Verify consistency of the exit lists. | |
32695 | (flow_loops_find): Use alloc_loop. Initialize exits hash. | |
32696 | (set_single_exit): Removed. | |
32697 | * cfgloop.h (struct loop_exit): New function. | |
32698 | (struct loop): single_exit_ field replaced by exits field. | |
32699 | (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by | |
32700 | LOOPS_HAVE_RECORDED_EXITS. | |
32701 | (struct loops): Added exits hash. | |
32702 | (mark_single_exit_loops, set_single_exit): Declaration removed. | |
32703 | (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare. | |
32704 | ||
32705 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32706 | ||
32707 | * doc/invoke.texi: Avoid use of @headitem. | |
32708 | ||
32709 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32710 | ||
32711 | * cse.c (cse_insn): Move HAVE_CC0 code after declarations. | |
32712 | ||
32713 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32714 | ||
32715 | * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the | |
32716 | list of targets. | |
32717 | ||
32718 | 2007-01-12 Nathan Sidwell <nathan@codesourcery.com> | |
32719 | Richard Sandiford <richard@codesourcery.com> | |
32720 | ||
32721 | * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short. | |
32722 | * config/m68k/m68k.opt: Resort options. | |
32723 | (mbitfield, mrtd, mshort): Remove RejectNegative properties. | |
32724 | ||
32725 | 2007-01-12 Nathan Sidwell <nathan@codesourcery.com> | |
32726 | Richard Sandiford <richard@codesourcery.com> | |
32727 | ||
32728 | * doc/invoke.texi: Document the macros that are defined by | |
32729 | m68k's -mtune and -mhard-float options. | |
32730 | * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare. | |
32731 | (m68k_cpp_cpu_family): Likewise. | |
32732 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set | |
32733 | of __ucfv*__ macros. Define __mcffpu__ if generating code for | |
32734 | ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros. | |
32735 | * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function. | |
32736 | (m68k_cpp_cpu_family): Likewise. | |
32737 | ||
32738 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32739 | ||
32740 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68* | |
32741 | macros besides mc68000 as tuning macros. Use a switch statement | |
32742 | to set them and mcpu32. | |
32743 | ||
32744 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32745 | ||
32746 | * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY. | |
32747 | (TARGET_68040_ONLY): Rename to... | |
32748 | (TARGET_68040): ...this. | |
32749 | * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY. | |
32750 | * config/m68k/m68k.md: Likewise. | |
32751 | ||
32752 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32753 | Nathan Sidwell <nathan@codesourcery.com> | |
32754 | Richard Sandiford <richard@codesourcery.com> | |
32755 | ||
32756 | * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to | |
32757 | the -mcpu= argument associated with the --with-cpu setting. | |
32758 | Define M68K_DEFAULT_TUNE to the default -mtune= option, | |
32759 | if different from the one implied by the -mcpu setting. | |
32760 | Accept --with-cpu=FOO if FOO is listed in m68k-devices.def, | |
32761 | using mcpu=FOO as the default CPU option. Set target_cpu_default2. | |
32762 | * doc/invoke.texi: Mention ColdFire in the introduction to the | |
32763 | m68k options. Document the new -march, -mcpu, -mtune, -mdiv, | |
32764 | -mno-div and -mhard-float options. Make -m68881 a synonym for | |
32765 | -mhard-float. Document the previously-undocumented -m5206e, | |
32766 | -m528x, -m5307 and -m5407 options. Tweak the existing option | |
32767 | documentation for consistency. | |
32768 | * doc/install.texi: Mention new --with-cpu arguments. | |
32769 | * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the | |
32770 | default CPU if neither -mcpu nor -march are specified. | |
32771 | (ASM_CPU_SPEC): Pass down -mcpu and -march options. | |
32772 | (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from | |
32773 | TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way, | |
32774 | using m68k_tune to decide between families that implement the | |
32775 | same ISA. Use m68k_tune to set __mcfv4e__. | |
32776 | (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC) | |
32777 | (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000) | |
32778 | (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B) | |
32779 | (FL_ISA_C, FL_ISA_MMU): New macros. | |
32780 | (MASK_COLDFIRE): Delete. | |
32781 | (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE) | |
32782 | (TARGET_ISAB): Redefine in terms of m68k_cpu_flags. | |
32783 | (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu. | |
32784 | (TARGET_HARD_FLOAT): Do not define here. | |
32785 | (TARGET_ISAAPLUS, TARGET_ISAC): New macros. | |
32786 | (TUNE_68000): New macro. | |
32787 | (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010. | |
32788 | (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32) | |
32789 | (TUNE_CFV2): Redefine in terms of m68k_tune. | |
32790 | (uarch_type, target_device, fpu_type): New enums. | |
32791 | (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare. | |
32792 | * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881. | |
32793 | (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40) | |
32794 | (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b) | |
32795 | (FL_FOR_isa_c): New macros. | |
32796 | (m68k_isa): New enum. | |
32797 | (m68k_target_selection): New structure. | |
32798 | (all_devices, all_isas, all_microarchs): New tables. | |
32799 | (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu) | |
32800 | (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables. | |
32801 | (MASK_ALL_CPU_BITS): Delete. | |
32802 | (m68k_find_selection): New function. | |
32803 | (m68k_handle_option): Handle -mcpu=, -march= and -mtune=. | |
32804 | Map the legacy target options to a combination of the new ones. | |
32805 | (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and | |
32806 | m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags | |
32807 | to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT | |
32808 | settings. | |
32809 | * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e) | |
32810 | (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask | |
32811 | properties. | |
32812 | (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT. | |
32813 | (march=, mcpu=, mdiv, mhard-float, mtune=): New options. | |
32814 | * config/m68k/m68k-devices.def: New file. | |
32815 | ||
32816 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32817 | Nathan Sidwell <nathan@codesourcery.com> | |
32818 | ||
32819 | * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS) | |
32820 | (SUBTARGET_EXTRA_SPECS): New macros. | |
32821 | * config/m68k/linux.h (ASM_SPEC): Remove CPU flags; | |
32822 | use %(asm_cpu_spec) instead. | |
32823 | * config/m68k/m68k-none.h (ASM_SPEC): Likewise. | |
32824 | * config/m68k/openbsd.h (ASM_SPEC): Likewise. | |
32825 | * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise. | |
32826 | (EXTRA_SPECS): Rename to... | |
32827 | (SUBTARGET_EXTRA_SPECS): ...this. | |
32828 | ||
32829 | 2007-01-12 Nathan Sidwell <nathan@codesourcery.com> | |
32830 | Richard Sandiford <richard@codesourcery.com> | |
32831 | Julian Brown <julian@codesourcery.com> | |
32832 | ||
32833 | * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) | |
32834 | (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu | |
32835 | to the configuration's default CPU. | |
32836 | (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise. | |
32837 | Remove default masks. | |
32838 | (m680[012]0-*-*): Set the default with_cpu to the first part of | |
32839 | the target name. | |
32840 | (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu. | |
32841 | (m68k*-*-linux): Extend the --with-cpu handling to... | |
32842 | (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000 | |
32843 | and m68010. Don't set target_cpu_default2. | |
32844 | * doc/install.texi: Document --with-cpu for m68k. | |
32845 | * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define. | |
32846 | * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k) | |
32847 | (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030) | |
32848 | (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT) | |
32849 | (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete. | |
32850 | (ASM_SPEC): Remove use of %(asm_cpu_default). | |
32851 | (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete. | |
32852 | * config/m68k/linux.h (TARGET_DEFAULT): Delete. | |
32853 | (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here. | |
32854 | * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define | |
32855 | __HAVE_FPU__ if TARGET_HARD_FLOAT. | |
32856 | (TARGET_DEFAULT): Delete. | |
32857 | (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec, | |
32858 | cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec. | |
32859 | (CPP_CPU_SPEC): Delete. | |
32860 | (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick | |
32861 | the appropriate string. | |
32862 | (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete. | |
32863 | (CPP_SPEC): Define to NETBSD_CPP_SPEC. | |
32864 | (ASM_SPEC): Don't use %(asm_default_spec). | |
32865 | * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove | |
32866 | TARGET_DEFAULT and add MASK_68881. | |
32867 | * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments. | |
32868 | ||
32869 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32870 | ||
32871 | * config.gcc (m68010-*-netbsdelf*): Add MASK_68010. | |
32872 | (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add | |
32873 | MASK_68010 alongside MASK_68020. | |
32874 | * doc/invoke.texi: Document -m68010. | |
32875 | * config/m68k/m68k.opt (m68010): New. | |
32876 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010 | |
32877 | if TUNE_68010. | |
32878 | (TUNE_68010): New macro. | |
32879 | * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010) | |
32880 | (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040) | |
32881 | (M68K_CPU_m68332): Add MASK_68010. | |
32882 | * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to | |
32883 | fallback definition. | |
32884 | * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant | |
32885 | defines. | |
32886 | * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010. | |
32887 | (m68k_handle_option): Handle OPT_m68010. Add MASK_68010 | |
32888 | to all entries that use MASK_68020. | |
32889 | (output_move_simode_const, output_move_himode, output_move_qimode) | |
32890 | (output_move_stricthi, output_move_strictqi): Use TARGET_68010 | |
32891 | instead of TARGET_68020 to select clr behavior. Remove comment | |
32892 | about there being no TARGET_68010. | |
32893 | * config/m68k/m68k.md: Likewise throughout. | |
32894 | ||
32895 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32896 | ||
32897 | * config/m68k/m68k.h (TARGET_ISAB): New macro. | |
32898 | * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4. | |
32899 | * config/m68k/m68k.md: Likewise. | |
32900 | ||
32901 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32902 | ||
32903 | * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use | |
32904 | TARGET_COLDFIRE_FPU instead of TARGET_CFV4E. | |
32905 | ||
32906 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32907 | ||
32908 | * config/m68k/m68k.h (TUNE_68040_60): New macro. | |
32909 | * config/m68k/m68k.c (standard_68881_constant_p): Use it. | |
32910 | * config/m68k/m68k.md: Likewise. | |
32911 | ||
32912 | 2007-01-12 Julian Brown <julian@codesourcery.com> | |
32913 | Richard Sandiford <richard@codesourcery.com> | |
32914 | ||
32915 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030 | |
32916 | instead of TARGET_68030, TUNE_68040 instead of TARGET_68040, | |
32917 | TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of | |
32918 | TARGET_CPU32. | |
32919 | (TARGET_CPU32): Rename to... | |
32920 | (TUNE_CPU32): ...this. | |
32921 | (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060) | |
32922 | (TUNE_CFV2): New macros. | |
32923 | * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify; | |
32924 | remove conditions that are implied by TARGET_68020. | |
32925 | * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040 | |
32926 | instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32. | |
32927 | (m68k_output_function_epilogue): Likewise. | |
32928 | (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060 | |
32929 | and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of | |
32930 | "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and | |
32931 | non-68000 timings. Refactor multiplication and division costs. | |
32932 | (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and | |
32933 | TUNE_CPU32 instead of TARGET_CPU32. | |
32934 | (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040 | |
32935 | and TUNE_68060 instead of TARGET_68060. | |
32936 | * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040, | |
32937 | TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of | |
32938 | TARGET_CPU32. | |
32939 | (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020 | |
32940 | && !TARGET_COLDFIRE" to choose between moveq and clr. | |
32941 | Likewise in the unnamed movsf pattern. | |
32942 | (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than | |
32943 | "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed | |
32944 | ashiftrt pattern. | |
32945 | ||
32946 | 2007-01-12 Richard Sandiford <richard@codesourcery.com> | |
32947 | ||
32948 | * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount | |
32949 | of tabbing before backslashes. | |
32950 | ||
32951 | 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
32952 | ||
32953 | * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine. | |
32954 | * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS. | |
32955 | (ASM_OUTPUT_INTERNAL_LABEL): Define. | |
32956 | ||
32957 | 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz> | |
32958 | ||
32959 | * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from | |
32960 | find_interesting_uses_cond. | |
32961 | (find_interesting_uses_cond): Use extract_cond_operands. | |
32962 | (rewrite_use_compare): Use extract_cond_operands and | |
32963 | force_gimple_operand_bsi. Do not call update_stmt. | |
32964 | (determine_use_iv_cost_condition): Use extract_cond_operands. | |
32965 | Return cheaper of using original bound and changing the exit bound. | |
32966 | ||
32967 | 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz> | |
32968 | ||
32969 | PR tree-optimization/29516 | |
32970 | * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts, | |
32971 | most_expensive_mult_to_index, addr_to_parts, | |
32972 | create_mem_ref, maybe_fold_tmr): Make the type of | |
32973 | fields of TARGET_MEM_REF sizetype. | |
32974 | (move_fixed_address_to_symbol, move_pointer_to_base): | |
32975 | New functions. | |
32976 | * tree.def (TARGET_MEM_REF): Add comment on types of | |
32977 | the operands. | |
32978 | ||
32979 | 2007-01-11 Joseph Myers <joseph@codesourcery.com> | |
32980 | ||
32981 | * c-common.c (vector_types_convertible_p): Treat opaque types as | |
32982 | always convertible if they have the same size, but not otherwise. | |
32983 | ||
32984 | 2007-01-11 Steven Bosscher <steven@gcc.gnu.org> | |
32985 | ||
32986 | * ifcvt.c (struct noce_if_info): Add comments to the fields. | |
32987 | Remove the b_unconditional field. | |
32988 | (noce_try_sign_mask): Do not look at b_unconditional. | |
32989 | (noce_process_if_block): Do not use merge_if_blocks. Update | |
32990 | the CFG here. Do not set b_unconditional. | |
32991 | (cond_move_process_if_block): Likewise. | |
32992 | (find_cond_trap): Likewise. | |
32993 | (check_cond_move_block): Require simple jump insns at the end | |
32994 | of the basic block. | |
32995 | ||
32996 | 2007-01-11 Jan Hubicka <jh@suse.cz> | |
32997 | ||
32998 | PR tree-optimization/1046 | |
32999 | * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE | |
33000 | when alias info is not ready. | |
33001 | (pass_tail_recursion): Do not require aliasing. | |
33002 | * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise. | |
33003 | * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise. | |
33004 | * tree-ssa-copy.c (pass_copy_prop): Likewise. | |
33005 | * tree-ssa-forwprop.c (pass_forwprop): Likewise. | |
33006 | * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise. | |
33007 | * passes.c (init_optimization_passes): Execute rename_ssa_copies, | |
33008 | ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion | |
33009 | before inlining. | |
33010 | * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand): | |
33011 | When aliasing is not build, mark statement as volatile. | |
33012 | ||
33013 | 2007-01-11 Tom Tromey <tromey@redhat.com> | |
33014 | ||
33015 | PR preprocessor/15185 | |
33016 | PR preprocessor/20989 | |
33017 | * doc/cppopts.texi <-MT>: Update description of algorithm for | |
33018 | computing default target. | |
33019 | <-M, -MD>: Reword "basename" text. | |
33020 | ||
33021 | 2007-01-11 Roger Sayle <roger@eyesopen.com> | |
33022 | ||
33023 | * builtins.c (expand_builtin_pow, expand_builtin_powi, | |
33024 | fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc, | |
33025 | fold_builtin_floor, fold_builtin_ceil, fold_builtin_round, | |
33026 | fold_builtin_int_int_roundingfn, fold_builtin_bitop, | |
33027 | fold_builtin_bswap, real_constp, fold_builtin_pow, | |
33028 | fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign, | |
33029 | do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace | |
33030 | uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. | |
33031 | * convert.c (convert_to_pointer): Likewise. | |
33032 | * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise. | |
33033 | * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop, | |
33034 | const_binop, fold_convert_const_int_from_int, | |
33035 | fold_convert_const_int_from_real, | |
33036 | fold_convert_const_real_from_real, sign_bit_p, | |
33037 | optimize_minmax_comparison, extract_muldiv_1, fold_div_compare, | |
33038 | fold_sign_changed_comparison, fold_unary, fold_comparison, | |
33039 | fold_binary, multiple_of_p, tree_Expr_non_zero_p, | |
33040 | fold_negate_const, fold_abs_const, fold_not_const): Likewise. | |
33041 | * print-tree.c (print_node_brief, print_node): Likewise. | |
33042 | * stor-layout.c (place_field, layout_type): Likewise. | |
33043 | * tree-chrec.c (keep_cast): Likewise. | |
33044 | * tree.c (build_vector, build_real, build_real_from_int_cst, | |
33045 | build_complex): Likewise. | |
33046 | ||
33047 | 2007-01-11 Roger Sayle <roger@eyesopen.com> | |
33048 | ||
33049 | * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being, | |
33050 | treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW. | |
33051 | ||
33052 | 2007-01-11 Paolo Bonzini <bonzini@gnu.org> | |
33053 | ||
33054 | * configure.ac (strict1_warn): Rename to strict_warn. | |
33055 | (WERROR, --enable-werror, symlink hacks, stage1_cflags, | |
33056 | cc_set_by_configure, quoted_cc_set_by_configure, | |
33057 | stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure, | |
33058 | all_boot_languages, all_stagestuff): Remove. | |
33059 | (target_list): Remove bootstrap targets. | |
33060 | * Makefile.in (quickstrap): Unconditionally make a synonym of all. | |
33061 | (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING, | |
33062 | REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS, | |
33063 | SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF, | |
33064 | VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS, | |
33065 | STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build, | |
33066 | stage1_copy, stage2_build, stage2_copy, stageprofile_build, | |
33067 | stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build, | |
33068 | stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap, | |
33069 | bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3, | |
33070 | bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2, | |
33071 | unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2, | |
33072 | restage3, restage4, restageprofile, restagefeedback, bubbleestrap, | |
33073 | cleanstrap, unstrap, restrap, *compare, *compare3, *compare4, | |
33074 | *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1, | |
33075 | stage2-start, stage2, stage3-start, stage3, stage4-start, stage4, | |
33076 | stageprofile-start, stageprofile, stagefeedback-start, stagefeedback, | |
33077 | risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove. | |
33078 | (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS. | |
33079 | (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES. | |
33080 | (mostlyclean): Adjust. | |
33081 | (clean, distclean): Don't mention bootstrap stuff. | |
33082 | * configure: Regenerate. | |
33083 | * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in, | |
33084 | java/config-lang.in, objc/config-lang.in, objcp/config-lang.in, | |
33085 | treelang/config-lang.in (stagestuff): Remove. | |
33086 | * doc/sourcebuild.texi (stage1, stage2, stage3, stage4, | |
33087 | stageprofile, stagefeedback, stagestuff): Remove mention. | |
33088 | ||
33089 | 2007-01-11 Nick Clifton <nickc@redhat.com> | |
33090 | ||
33091 | * config/mcore/predicates.md (mcore_general_movesrc_operand): | |
33092 | Accept CONSTs. | |
33093 | (mcore_general_movdst_operand): Do not accept CONST_INTs. | |
33094 | (mcore_arith_K_S_operand): Run the test for the S constraint not | |
33095 | the test for the M constraint. | |
33096 | (mcore_addsub_operand): Do not accept integer values that are | |
33097 | larger than 32 bits. | |
33098 | * config/mcore/mcore.md: Remove unused constraints from split. | |
33099 | (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL. | |
33100 | (addsi3): Likewise. | |
33101 | (allocate_stack): Likewise. | |
33102 | * config/mcore/mcore.c (mcore_print_operand): Restrict output of P | |
33103 | operands to 32 bits. | |
33104 | (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an | |
33105 | INTVAL. | |
33106 | (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore, | |
33107 | mcore_const_ok_for_inline, mcore_const_trick_uses_not, | |
33108 | try_constant_tricks, mcore_num_ones, mcore_num_zeros, | |
33109 | mcore_output_bclri, mcore_output_andn, output_inline_const, | |
33110 | mcore_output_move, mcore_output_movedouble): Likewise. | |
33111 | (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N. | |
33112 | (output_inline_const): Likewise. | |
33113 | (output_inline_const): Fix format strings used in sprintf | |
33114 | statements. | |
33115 | * config/mcore/mcore-protos.h: Update prototypes for changed | |
33116 | functions in mcore.c. | |
33117 | * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to | |
33118 | HOST_WIDE_INT and not int. | |
33119 | (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M, | |
33120 | CONST_OK_FOR_N): Likewise. | |
33121 | (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P. | |
33122 | (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold | |
33123 | an INTVAL. | |
33124 | ||
33125 | 2007-01-10 Jan Hubicka <jh@suse.cz> | |
33126 | ||
33127 | * tree-vrp.c (remove_range_assertions): Release defs. | |
33128 | * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise. | |
33129 | * tree-ssa-dom.c (remove_stmt_or_phi): Likewise. | |
33130 | ||
33131 | 2007-01-10 Paul Brook <paul@codesourcery.com> | |
33132 | ||
33133 | * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract. | |
33134 | * config/arm/arm.md (mulsi3subsi): New insn. | |
33135 | ||
33136 | 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz> | |
33137 | ||
33138 | * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ... | |
33139 | (tree_transform_and_unroll_loop): New. | |
33140 | * tree-flow.h (transform_callback, tree_transform_and_unroll_loop): | |
33141 | Declare. | |
33142 | ||
33143 | 2007-01-10 Robert Kennedy <jimbob@google.com> | |
33144 | ||
33145 | * fold-const.c (fold_comparison): Fold comparisons like (x * | |
33146 | 1000 < 0) to (x < 0). | |
33147 | ||
33148 | 2007-01-10 Ian Lance Taylor <iant@google.com> | |
33149 | ||
33150 | * tree-pretty-print.c (dump_generic_node): Print parentheses when | |
33151 | operands have the same priority. | |
33152 | ||
33153 | 2007-01-10 Tom Tromey <tromey@redhat.com> | |
33154 | ||
33155 | * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p. | |
33156 | (fold_binary): Likewise. | |
33157 | * langhooks.c (lhd_can_use_bit_fields_p): Removed. | |
33158 | * langhooks-def.h (lhd_can_use_bit_fields_p): Removed. | |
33159 | (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed. | |
33160 | (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P. | |
33161 | * langhooks.h (struct lang_hooks): Removed field | |
33162 | 'can_use_bit_fields_p'. | |
33163 | ||
719bb4e3 | 33164 | 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org> |
f13d199c RB |
33165 | |
33166 | * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS. | |
33167 | ||
33168 | 2007-01-10 Razya Ladelsky <razya@il.ibm.com> | |
33169 | ||
33170 | * function.c (get_last_funcdef_no): New function. | |
33171 | * function.h (get_last_funcdef_no): Declare. | |
33172 | * tree-inline.c (initialize_cfun): Add initialization. | |
33173 | (tree_function_versioning): Cleanup. | |
33174 | ||
33175 | 2007-01-10 Jan Hubicka <jh@suse.cz> | |
33176 | ||
33177 | * tree-inline.c (setup_one_parameter): Do not propagate into abnormal | |
33178 | PHIs. | |
33179 | ||
33180 | 2007-01-10 Sa Liu <saliu@de.ibm.com> | |
33181 | Ben Elliston <bje@au.ibm.com> | |
33182 | ||
33183 | * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode | |
33184 | for SAVE_NONLOCAL and Pmode for any other save level. | |
33185 | * spu-protos.h (spu_restore_stack_block): Declare. | |
33186 | * spu.md (save_stack_block): Remove. | |
33187 | (restore_stack_block): Call spu_restore_stack_block. | |
33188 | * spu.c (spu_restore_stack_block): New function. | |
33189 | (spu_expand_epilogue): Remove old comment. | |
33190 | ||
33191 | 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz> | |
33192 | ||
33193 | PR tree-optimization/30322 | |
33194 | * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed. | |
33195 | (cand_value_at): Return the value as aff_tree. | |
33196 | (may_eliminate_iv): Convert the bound from aff_tree to tree. | |
33197 | * tree-affine.c (aff_combination_add_cst, aff_combination_add_product, | |
33198 | aff_combination_mult): New functions. | |
33199 | (aff_combination_add): Use aff_combination_add_cst. | |
33200 | (aff_combination_convert): Allow conversions to a wider type. | |
33201 | (tree_to_aff_combination): Handle BIT_NOT_EXPR. | |
33202 | * tree-affine.h (aff_combination_mult): Declare. | |
33203 | ||
33204 | 2007-01-09 Carlos O'Donell <carlos@codesourcery.com> | |
33205 | ||
33206 | * doc/tm.texi: Update documentation to reflect reality of exec | |
33207 | and start file search behaviours. Update copyright year. | |
33208 | * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find | |
33209 | header file directories. | |
33210 | ||
33211 | 2007-01-09 Uros Bizjak <ubizjak@gmail.com> | |
33212 | ||
33213 | * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387. | |
33214 | (*cosxf2): Rename to cosxf2_i387. | |
33215 | (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns | |
33216 | using X87MODEF12 mode macro. Rename patterns to | |
33217 | *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns | |
33218 | for SSE math. | |
33219 | (*cosdf2, *cossf2): Ditto. | |
33220 | (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters | |
33221 | to match extended input operands. | |
33222 | (sincos<mode>3): New expander. | |
33223 | (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove | |
33224 | insn patterns and corresponding splitters. | |
33225 | ||
33226 | 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org> | |
33227 | ||
33228 | * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete. | |
33229 | (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise. | |
33230 | ||
33231 | 2007-01-09 Nicolas Pitre <nico@cam.org> | |
33232 | ||
33233 | PR target/30173 | |
33234 | * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero. | |
33235 | ||
33236 | 2007-01-08 Geoffrey Keating <geoffk@apple.com> | |
33237 | ||
33238 | * target.h (struct gcc_target): New field library_rtti_comdat. | |
33239 | * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New. | |
33240 | (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT. | |
33241 | * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT. | |
33242 | * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. | |
33243 | ||
33244 | 2007-01-08 Geoffrey Keating <geoffk@apple.com> | |
33245 | ||
33246 | * doc/invoke.texi (Optimize Options): Correct description of -O0. | |
33247 | ||
33248 | 2007-01-08 Richard Guenther <rguenther@suse.de> | |
33249 | ||
33250 | * tree.h (force_fit_type_double): Export. | |
33251 | (force_fit_type): Remove. | |
33252 | * fold-const.c (force_fit_type_double): New function. | |
33253 | (force_fit_type): Remove. | |
33254 | (int_const_binop): Use it. | |
33255 | (fold_convert_const_int_from_int): Likewise. | |
33256 | (fold_convert_const_int_from_real): Likewise. | |
33257 | (fold_div_compare): Likewise. | |
33258 | (fold_sign_changed_comparison): Likewise. | |
33259 | (fold_unary): Likewise. | |
33260 | (fold_negate_const): Likewise. | |
33261 | (fold_abs_const): Likewise. | |
33262 | (fold_not_const): Likewise. | |
33263 | * c-common.c (shorten_compare): Use force_fit_type_double. | |
33264 | * convert.c (convert_to_pointer): Likewise. | |
33265 | ||
33266 | 2007-01-08 Richard Guenther <rguenther@suse.de> | |
33267 | ||
33268 | * tree.h (build_int_cst_wide_type): Export. | |
33269 | * tree.c (build_int_cst_wide_type): New function. | |
33270 | (build_int_cst_wide): Fix comment. | |
33271 | * builtins.c (fold_builtin_object_size): Use build_int_cst | |
33272 | to build -1 or 0 of the correct type. Use fit_double_type | |
33273 | to check for overflow. | |
33274 | * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type | |
33275 | to build the mask. | |
33276 | (decode_field_reference): Likewise. | |
33277 | (all_ones_mask_p): Likewise. | |
33278 | (native_interpret_int): Use build_int_cst_wide_type. | |
33279 | (fold_binary): Use build_int_cst_type to build an all-ones | |
33280 | value. | |
33281 | * stor-layout.c (set_sizetype): Use build_int_cst_wide_type. | |
33282 | ||
33283 | 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com> | |
33284 | ||
33285 | * config/pa/t-pa64 (libgcc_stub.a): Use $(T). | |
33286 | ||
33287 | 2007-01-09 Ben Elliston <bje@au.ibm.com> | |
33288 | ||
33289 | * genautomata.c (STATS_OPTION): New option. | |
33290 | (stats_flag): New flag. | |
33291 | (gen_automata_option): Handle it. | |
33292 | (initiate_automaton_gen): Ditto. | |
33293 | (write_automata): Output statistics only if stats_flag is | |
33294 | set. Likewise, output time statistics only if time_flag is set. | |
33295 | * doc/md.texi (Processor pipeline description): Document new flag. | |
33296 | ||
33297 | 2007-01-08 Richard Guenther <rguenther@suse.de> | |
33298 | ||
33299 | * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type. | |
33300 | * tree.c (build_int_cst_type): Likewise. | |
33301 | (size_in_bytes): Don't call force_fit_type on the result. | |
33302 | (int_fits_type_p): Use fit_double_type. | |
33303 | * fold-const.c (fit_double_type): New function. | |
33304 | (force_fit_type): Use it. | |
33305 | * tree.h (fit_double_type): Export. | |
33306 | ||
33307 | 2007-01-08 Jan Hubicka <jh@suse.cz> | |
33308 | ||
33309 | * tree-vectorizer.c (gate_increase_alignment): Fix return type. | |
33310 | * ipa.c (function_and_variable_visibility): Fix return type. | |
33311 | ||
33312 | 2007-01-08 Richard Guenther <rguenther@suse.de> | |
33313 | ||
33314 | * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type | |
33315 | of offset to build the index. | |
33316 | * tree-pretty-print.c (dump_generic_node): Don't build negated | |
33317 | const just for printing. | |
33318 | * c-pretty-print.c (pp_c_integer_constant): Likewise. | |
33319 | * builtins.c (fold_builtin_int_roundingfn): Check if result | |
33320 | fits the type by using force_fit_type and comparing the result. | |
33321 | * predict.c (predict_loops): Use compare_tree_int for comparison. | |
33322 | * tree.c (build_int_cst): Fall back to integer_type_node for | |
33323 | NULL_TREE type. | |
33324 | (build_int_cst_wide): Assert type is non-null. | |
33325 | ||
33326 | 2007-01-08 Roberto Costa <roberto.costa@st.com> | |
33327 | ||
33328 | * tree-vrp.c (extract_range_from_cond_expr): New. | |
33329 | (extract_range_from_expr): Handle COND_EXPR nodes used as expressions. | |
33330 | * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used | |
33331 | as expressions. | |
33332 | (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs. | |
33333 | * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond, | |
33334 | tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes | |
33335 | used as expressions. | |
33336 | * tree-object-size.c (cond_expr_object_size): New. | |
33337 | (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions. | |
33338 | ||
33339 | 2007-01-08 Jan Hubicka <jh@suse.cz> | |
33340 | ||
33341 | * tree-ssa-forwprop.c (forward_propagate_into_cond, | |
33342 | tree_ssa_forward_propagate_single_use_va): Release defs of propagated | |
33343 | statement. | |
33344 | ||
33345 | 2007-01-08 Richard Guenther <rguenther@suse.de> | |
33346 | ||
33347 | PR tree-optimization/23603 | |
33348 | * tree-vrp.c (set_value_range_to_truthvalue): New function. | |
33349 | (extract_range_from_binary): Fall back to truthvalue instead of | |
33350 | varying for TRUTH_*_EXPR. | |
33351 | (extract_range_from_comparison): Fall back to truthvalue instead of | |
33352 | varying. | |
33353 | (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF | |
33354 | if all visited PHI values were constant. | |
33355 | ||
33356 | 2007-01-08 Jan Hubicka <jh@suse.cz> | |
33357 | ||
33358 | * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag. | |
33359 | (cgraph_analyze_function): break out from ... | |
33360 | (cgraph_finalize_compilation_unit): ... here. | |
33361 | (cgraph_expand_function): Remove forgoten commented out line. | |
33362 | (cgraph_optimize): Analyze functions. | |
33363 | ||
33364 | 2007-01-08 Jan Hubicka <jh@suse.cz> | |
33365 | ||
33366 | * tree-pas.h (TODO_remove_function): New flag. | |
33367 | (TODO_update*): Renumber. | |
33368 | (pass_ipa_increase_alignment, | |
33369 | pass_ipa_function_and_variable_visibility): New passes. | |
33370 | * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c | |
33371 | (cgraph_function_and_variable_visibility): Move to ipa.c | |
33372 | (cgraph_optimize): Don't call cgraph_function_and_variable_visibility, | |
33373 | cgraph_increase_alignment. | |
33374 | * ipa-inline.c (cgraph_decide_inlining): Don't push timevar. | |
33375 | (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before | |
33376 | calling tree-inline. | |
33377 | (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes. | |
33378 | (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions | |
33379 | * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c | |
33380 | (gate_increase_alignment): New function. | |
33381 | (pass_ipa_increase_alignment): New pass. | |
33382 | * ipa.c: Inline tree-pass.h and timevar.h | |
33383 | (function_and_variable_visibility): Move here from cgraphunit.c | |
33384 | * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions. | |
33385 | * passes.c (init_optimization_passes): Add the two new passes. | |
33386 | (execute_todo): Handle cgraph_remove_functions. | |
33387 | ||
33388 | 2007-01-08 Nick Clifton <nickc@redhat.com> | |
33389 | ||
33390 | * config/frv/predicates.md (reg_or_0_operand): Accept | |
33391 | CONST_DOUBLEs. | |
33392 | ||
719bb4e3 | 33393 | 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org> |
f13d199c RB |
33394 | |
33395 | * config/bfin/rtems.h, config/bfin/t-rtems: New. | |
33396 | * config.gcc: Add bfin*-rtems*. | |
33397 | ||
33398 | 2007-01-08 Mark Shinwell <shinwell@codesourcery.com> | |
33399 | ||
33400 | * c.opt: Add -flax-vector-conversions. | |
33401 | * c-typeck.c (convert_for_assignment): Pass flag to | |
33402 | vector_types_convertible_p to allow emission of note. | |
33403 | (digest_init): Likewise. | |
33404 | * c-opts.c: Handle -flax-vector-conversions. | |
33405 | * c-common.c (flag_lax_vector_conversions): New. | |
33406 | (vector_types_convertible_p): Unless -flax-vector conversions | |
33407 | has been passed, disallow conversions between vectors with | |
33408 | differing numbers of subparts and/or element types. If such | |
33409 | a conversion is disallowed, possibly emit a note on the first | |
33410 | occasion only to inform the user of -flax-vector-conversions. | |
33411 | The new last argument specifies this. | |
33412 | * c-common.h (flag_lax_vector_conversions): New. | |
33413 | (vector_types_convertible_p): Add extra argument. | |
33414 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use | |
33415 | char_type_node for V*QI type vectors. | |
33416 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): | |
33417 | Update to satisfy new typechecking rules. | |
33418 | * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both | |
33419 | C and C++ variants. | |
33420 | * doc/invoke.texi (C Dialect Options): Document | |
33421 | -flax-vector-conversions. | |
33422 | ||
33423 | 2007-01-08 Mark Shinwell <shinwell@codesourcery.com> | |
33424 | ||
33425 | PR tree-optimization/29877 | |
33426 | * tree-ssa-ter.c (is_replaceable_p): Deem assignments with | |
33427 | a register variable on the RHS to not be replaceable. | |
33428 | ||
33429 | 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn> | |
33430 | * config/score/t-score-elf (MULTILIB_OPTIONS): Change. | |
33431 | * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12, | |
33432 | const_simm15, const_pow2, const_npow2): Added. | |
33433 | * config/score/misc.md (insv, extv, extzv, movmemsi, | |
33434 | move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug. | |
33435 | * config/score/score.c (score_address_cost, score_select_cc_mode): | |
33436 | Added. | |
33437 | Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define. | |
33438 | Update score_rtx_costs for MACRO TARGET_RTX_COSTS. | |
33439 | Update score_print_operand. | |
33440 | * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added. | |
33441 | Adjust register allocate order and update some macro define. | |
33442 | * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store, | |
33443 | mdx_block_move_straight, mdx_block_move_loop_head, | |
33444 | mdx_block_move_loop_body, mdx_block_move_loop_foot, | |
33445 | mdx_block_move_loop, mdx_block_move): Added. | |
33446 | (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi, | |
33447 | mdp_limm): Updated and fix some bug and typo. | |
33448 | * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated. | |
33449 | (movsf, movdf, doloop_end): Added. | |
33450 | ||
33451 | 2007-01-08 Kazu Hirata <kazu@codesourcery.com> | |
33452 | ||
33453 | * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, | |
33454 | config/arm/thumb2.md: Fix comment typos. | |
33455 | * doc/extend.texi: Fix a typo. | |
33456 | ||
33457 | 2007-01-07 Eric Christopher <echristo@apple.com> | |
33458 | ||
33459 | * configure.ac: Check for __stack_chk_fail for darwin. | |
33460 | * configure: Regenerate. | |
33461 | ||
33462 | 2007-01-07 Richard Guenther <rguenther@suse.de> | |
33463 | ||
33464 | * tree-vrp.c (extract_range_from_assert): CSE calls to | |
33465 | compare_values where possible. | |
33466 | (extract_range_from_unary_expr): Likewise. | |
33467 | ||
33468 | 2007-01-07 Anatoly Sokolov <aesok@post.ru> | |
33469 | ||
33470 | * config/avr/avr-protos.h (call_insn_operand): Delete prototype. | |
33471 | * config/avr/avr.c (call_insn_operand): Delete function. | |
33472 | * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP | |
33473 | instead of register number. Use predicates. | |
33474 | * config/avr/predicates.md (const0_operand, reg_or_0_operand, | |
33475 | call_insn_operand): Add. | |
33476 | ||
33477 | 2007-01-06 Jan Hubicka <jh@suse.cz> | |
33478 | ||
33479 | * tree-pass.h (pass_build_cgraph_edges): Declare. | |
33480 | * cgraphunit.c (record_refernece): Move to cgraphbuild.c | |
33481 | (visited_nodes): Remove. | |
33482 | (cgraph_create_edges): Move to cgraphbuild.c; rename to | |
33483 | build_cgrpah_edges; make visited_nodes local. | |
33484 | (cgraph_process_new_functions): DO not call initialize_inline_failed. | |
33485 | (record_references_in_initializer): Move to cgraphbuild.c | |
33486 | (initialize_inline_failed, rebuild_cgraph_edges, | |
33487 | pass_rebuild_cgraph_edges): Move to cgraphbuild.c. | |
33488 | (verify_cgraph_node): Make visited_nodes local. | |
33489 | (cgraph_analyze_function): Do not call cgraph_create_edges and | |
33490 | initialize_inline_failed. | |
33491 | (cgraph_expand_function): Do not call cgraph_lower_function; | |
33492 | assert that function is already lowered. | |
33493 | * Makefile.in (cgraphbuild.o): New. | |
33494 | * passes.c (init_optimization_passes): Add pass_build_cgraph_edges | |
33495 | at the end of lowering passes. | |
33496 | ||
33497 | 2007-01-06 Steven Bosscher <steven@gcc.gnu.org> | |
33498 | ||
33499 | * ifcvt.c (cond_move_convert_if_block): New function, code | |
33500 | factored out from... | |
33501 | (cond_move_process_if_block): ...here. Call the new function | |
33502 | on the THEN and ELSE blocks. | |
33503 | (merge_if_block): Do not copy global_live_at_end, merge_blocks | |
33504 | already takes care of this. | |
33505 | ||
33506 | 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
33507 | ||
33508 | PR c/19978 | |
33509 | * tree.h (TREE_OVERFLOW_P): New. | |
33510 | * c-typeck.c (parser_build_unary_op): Warn only if result | |
33511 | overflowed and operands did not. | |
33512 | (parser_build_binary_op): Likewise. | |
33513 | (convert_for_assignment): Remove redundant overflow_warning. | |
33514 | * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW. | |
33515 | ||
33516 | 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
33517 | ||
33518 | * c-typeck.c (store_init_value): Split over two lines to follow | |
33519 | the GNU coding style. | |
33520 | ||
33521 | 2007-01-05 Benjamin Kosnik <bkoz@redhat.com> | |
33522 | ||
33523 | * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to | |
33524 | __GXX_EXPERIMENTAL_CXX0X__. | |
33525 | * doc/cpp.texi: Same. | |
33526 | ||
33527 | 2007-01-05 Richard Guenther <rguenther@suse.de> | |
33528 | ||
33529 | PR middle-end/27826 | |
33530 | * tree.c (get_narrower): Do not construct COMPONENT_REFs | |
33531 | with mismatched types. Instead explicitly build a | |
33532 | conversion NOP_EXPR. | |
33533 | ||
33534 | 2007-01-05 Ian Lance Taylor <iant@google.com> | |
33535 | ||
33536 | * c-common.c (decl_with_nonnull_addr_p): New function. | |
33537 | (c_common_truthvalue_conversion): Call it. | |
33538 | * c-typeck.c (build_binary_op): Likewise. | |
33539 | * c-common.h (decl_with_nonnull_addr_p): Declare. | |
33540 | ||
33541 | 2007-01-05 Jakub Jelinek <jakub@redhat.com> | |
33542 | ||
33543 | PR c/30360 | |
33544 | * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of | |
33545 | denom against 0.0. | |
33546 | ||
33547 | 2007-01-05 Joel Brobecker <brobecker@adacore.com> | |
33548 | ||
33549 | * doc/install.texi (Final install): Document the fact that | |
33550 | the GNAT runtime should not be stripped. | |
33551 | ||
33552 | 2007-01-04 Jan Hubicka <jh@suse.cz> | |
33553 | ||
33554 | * tree-inline.c (fold_marked_statements): Update operand caches | |
33555 | and EH after folding | |
33556 | ||
33557 | 2007-01-04 Ian Lance Taylor <iant@google.com> | |
33558 | ||
33559 | * c-common.c (check_function_nonnull): Whitespace fix. | |
33560 | ||
33561 | 2007-01-04 Jan Hubicka <jh@suse.cz> | |
33562 | ||
33563 | * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely | |
33564 | comitted older version of patch. | |
33565 | (pass_fixup_cfg): Add TODOs to verify flow and statements, dump | |
33566 | function, celanup cfg and collect garbage. | |
33567 | ||
33568 | 2007-01-04 Mike Stump <mrs@apple.com> | |
33569 | ||
33570 | * Makefile.in (mostlyclean): Don't remove libgcc anymore. | |
33571 | (clean): Likewise. | |
33572 | ||
33573 | 2007-01-04 Eric Christopher <echristo@apple.com> | |
33574 | ||
33575 | * libgcc2.c (__bswapsi2): Use SItype. | |
33576 | (__bswapdi2): Use DItype. | |
33577 | * libgcc2.h: Update for above. | |
33578 | ||
33579 | 2007-01-04 Paul Brook <paul@codesourcery.com> | |
33580 | ||
33581 | * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0, | |
33582 | mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0, | |
33583 | mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3, | |
33584 | umulsidi3, umulsidi3adddi, smulsi3_highpart, | |
33585 | umulsi3_highpart): Make conditional on !arm_arch6. | |
33586 | (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6, | |
33587 | mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6, | |
33588 | mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6, | |
33589 | umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6, | |
33590 | umulsi3_highpart_v6): New insns. | |
33591 | ||
33592 | 2007-01-04 Roger Sayle <roger@eyesopen.com> | |
33593 | ||
33594 | * fold-const.c (fold_convert): When casting an expression to void, | |
33595 | fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't | |
33596 | have a type. Instead of attempting to build a NOP_EXPR, return | |
33597 | these "special" trees directly. | |
33598 | ||
33599 | 2007-01-04 Joseph Myers <joseph@codesourcery.com> | |
33600 | ||
33601 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for | |
33602 | MULT inside MINUS as either argument. Use rs6000_cost->dmul - | |
33603 | rs6000_cost->fp not 0 as adjustment for outer NEG. | |
33604 | ||
33605 | 2007-01-04 Jan Hubicka <jh@suse.cz> | |
33606 | ||
33607 | * cgraph.c (cgraph_release_function_body): New function. | |
33608 | (cgraph_remove_node): Use it. | |
33609 | * cgraph.h (cgraph_release_function_body): Declare. | |
33610 | * cgraphunit.c (cgraph_expand_function): Use it. | |
33611 | * ipa.c (cgraph_remove_unreahchable_nodes): Use it. | |
33612 | * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing | |
33613 | is initialized and while compilation of other function is running. | |
33614 | * tree-optimize.c (execute_free_cfg_annotations): Move code to clear | |
33615 | statement CFG annotations from here to ... | |
33616 | * tree-cfg.c (delete_tree_cfg_annotations): ... here. | |
33617 | ||
33618 | 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz> | |
33619 | ||
33620 | * cfgloop.h (enum li_flags): Make the constants powers of two. | |
33621 | ||
33622 | 2007-01-04 Jan Hubicka <jh@suse.cz> | |
33623 | ||
33624 | * tree-inline.c (copy_bb): Insert new statements to statements_to_fold | |
33625 | set. | |
33626 | (fold_marked_statements): New function. | |
33627 | (optimize_inline_calls, tree_function_versioning): Fold new statements. | |
33628 | * tree-inline.h (copy_body_data): Add statements_to_fold. | |
33629 | ||
33630 | 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com> | |
33631 | ||
33632 | * config.gcc: Mention libgcc/config.host. | |
33633 | * Makefile.in: Update comments mentioning libgcc. | |
33634 | (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. | |
33635 | (all.cross, start.encap, rest.encap, rest.cross): Update | |
33636 | dependencies for libgcc move. | |
33637 | (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) | |
33638 | (clean-target, clean-target-libgcc): Delete. | |
33639 | (srcdirify, GCC_EXTRA_PARTS): New macros. | |
33640 | (libgcc-support, libgcc.mvars): New rules. | |
33641 | (distclean): Remove mention of mklibgcc. | |
33642 | (install): Don't reference INSTALL_LIBGCC. | |
33643 | (install-common): Don't reference EXTRA_PARTS. | |
33644 | (install-libgcc, install-multilib): Delete rules. | |
33645 | * mklibgcc.in: Delete file. | |
33646 | * doc/configfiles.texi: Don't mention mklibgcc. | |
33647 | ||
33648 | * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). | |
33649 | * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. | |
33650 | * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. | |
33651 | * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) | |
33652 | (mklibgcc, ldblspecs): Likewise. | |
33653 | ||
33654 | * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) | |
33655 | (posixpre.def): Use $(T). | |
33656 | (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) | |
33657 | (SHLIB_SRC, SHLIB_INSTALL): Delete. | |
33658 | (SHLIB_LINK): Make dummy. | |
33659 | * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. | |
33660 | ||
33661 | * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. | |
33662 | ||
33663 | * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. | |
33664 | * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, | |
33665 | config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, | |
33666 | config/rs6000/t-newas, config/sparc/t-elf: Likewise. | |
33667 | ||
33668 | * configure.ac (all_outputs): Remove mklibgcc. | |
33669 | * configure: Regenerated. | |
33670 | ||
33671 | 2007-01-03 Josh Conner <jconner@apple.com> | |
33672 | ||
33673 | PR middle-end/29683 | |
33674 | * calls.c (compute_argument_addresses): Set stack and stack_slot | |
33675 | for partial args, too. | |
33676 | (store_one_arg): Use locate.size.constant for the size when | |
33677 | generating a save_area. | |
33678 | ||
33679 | 2007-01-03 Robert Kennedy <jimbob@google.com> | |
33680 | ||
33681 | * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results | |
33682 | whose definitions are deleted due to basic block merging. | |
33683 | ||
33684 | 2007-01-03 Paul Brook <paul@codesourcery.com> | |
33685 | ||
33686 | PR target/16634 | |
33687 | * config/arm/arm.c (output_return_instruction): Pop PC in interrupt | |
33688 | functions. | |
33689 | (use_return_insn): Return 0 for Thumb interrupt functions. | |
33690 | (print_multi_reg): Add rfe argument for IRQ returns. | |
33691 | (arm_output_epilogue): Pop interrupt return address directly into PC. | |
33692 | (arm_expand_prologue): Only adjust IRQ return address in Arm mode. | |
33693 | ||
33694 | 2007-01-03 Paul Brook <paul@codesourcery.com> | |
33695 | ||
33696 | Merge from sourcerygxx-4_1. | |
33697 | * config/arm/thumb2.md: New file. | |
33698 | * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for | |
33699 | Thumb-2. | |
33700 | * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto. | |
33701 | * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. | |
33702 | (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables. | |
33703 | * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump | |
33704 | tables. | |
33705 | (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. | |
33706 | * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm | |
33707 | comptibility. | |
33708 | * config/arm/ieee754-sf.S: Ditto. | |
33709 | * config/arm/arm.c (thumb_base_register_rtx_p): Rename... | |
33710 | (thumb1_base_register_rtx_p): ... to this. | |
33711 | (thumb_index_register_rtx_p): Rename... | |
33712 | (thumb1_index_register_rtx_p): ... to this. | |
33713 | (thumb_output_function_prologue): Rename... | |
33714 | (thumb1_output_function_prologue): ... to this. | |
33715 | (thumb_legitimate_address_p): Rename... | |
33716 | (thumb1_legitimate_address_p): ... to this. | |
33717 | (thumb_rtx_costs): Rename... | |
33718 | (thumb1_rtx_costs): ... to this. | |
33719 | (thumb_compute_save_reg_mask): Rename... | |
33720 | (thumb1_compute_save_reg_mask): ... to this. | |
33721 | (thumb_final_prescan_insn): Rename... | |
33722 | (thumb1_final_prescan_insn): ... to this. | |
33723 | (thumb_expand_epilogue): Rename... | |
33724 | (thumb1_expand_epilogue): ... to this. | |
33725 | (arm_unwind_emit_stm): Rename... | |
33726 | (arm_unwind_emit_sequence): ... to this. | |
33727 | (thumb2_legitimate_index_p, thumb2_legitimate_address_p, | |
33728 | thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec, | |
33729 | thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem, | |
33730 | arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition, | |
33731 | thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift, | |
33732 | thumb2_output_casesi): New functions. | |
33733 | (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define. | |
33734 | (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7, | |
33735 | FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME, | |
33736 | THUMB2_WORK_REGS): Define. | |
33737 | (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count, | |
33738 | arm_condexec_mask, arm_condexec_masklen)): New variables. | |
33739 | (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m. | |
33740 | (arm_override_options): Check new CPU capabilities. | |
33741 | Set new architecture flag variables. | |
33742 | (arm_isr_value): Handle v7m interrupt functions. | |
33743 | (user_return_insn): Return 0 for v7m interrupt functions. Handle | |
33744 | Thumb-2. | |
33745 | (const_ok_for_arm): Handle Thumb-2 constants. | |
33746 | (arm_gen_constant): Ditto. Use movw when available. | |
33747 | (arm_function_ok_for_sibcall): Return false for v7m interrupt | |
33748 | functions. | |
33749 | (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2. | |
33750 | (thumb_find_work_register, arm_load_pic_register, | |
33751 | legitimize_tls_address, arm_address_cost, load_multiple_sequence, | |
33752 | emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size, | |
33753 | print_multi_reg, output_mov_long_double_fpa_from_arm, | |
33754 | output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm, | |
33755 | output_mov_double_fpa_from_arm, output_move_double, | |
33756 | arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask, | |
33757 | output_return_instruction, arm_output_function_prologue, | |
33758 | arm_output_epilogue, arm_get_frame_offsets, arm_regno_class, | |
33759 | arm_output_mi_thunk, thumb_set_return_address): Ditto. | |
33760 | (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs. | |
33761 | (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC. | |
33762 | (arithmetic_instr, shift_op): Use arm_shift_nmem. | |
33763 | (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.', | |
33764 | '!' and 'L'. | |
33765 | (arm_final_prescan_insn): Use extract_constrain_insn_cached. | |
33766 | (thumb_expand_prologue): Use thumb_set_frame_pointer. | |
33767 | (arm_file_start): Output directive for unified syntax. | |
33768 | (arm_unwind_emit_set): Handle stack alignment instruction. | |
33769 | * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__. | |
33770 | Add v6t2, v7, v7a, v7r and v7m. | |
33771 | (RETLDM): Add Thumb-2 code. | |
33772 | (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros. | |
33773 | * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__. | |
33774 | (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY, | |
33775 | TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN, | |
33776 | THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS, | |
33777 | ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS, | |
33778 | THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE, | |
33779 | CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END, | |
33780 | ADJUST_INSN_LENGTH): Define. | |
33781 | (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE, | |
33782 | STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS, | |
33783 | BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES, | |
33784 | PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS, | |
33785 | SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, | |
33786 | TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT, | |
33787 | HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP, | |
33788 | HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG, | |
33789 | REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P, | |
33790 | REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, | |
33791 | LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS, | |
33792 | GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST, | |
33793 | ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME, | |
33794 | FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P, | |
33795 | PRINT_OPERAND_ADDRESS): Adjust for Thumb-2. | |
33796 | (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations. | |
33797 | * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and | |
33798 | cortex-m3. | |
33799 | * config/arm/arm-tune.md: Regenerate. | |
33800 | * config/arm/arm-protos.h: Update prototypes. | |
33801 | * config/arm/vfp.md: Enable patterns for Thumb-2. | |
33802 | (arm_movsi_vfp): Add movw alternative. Use output_move_vfp. | |
33803 | (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp. | |
33804 | (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp, | |
33805 | thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New. | |
33806 | * config/arm/libunwind.S: Add Thumb-2 code. | |
33807 | * config/arm/constraints.md: Update include Thumb-2. | |
33808 | * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support. | |
33809 | * config/arm/ieee754-df.S: Ditto. | |
33810 | * config/arm/bpabi.S: Ditto. | |
33811 | * config/arm/t-arm (MD_INCLUDES): Add thumb2.md. | |
33812 | * config/arm/predicates.md (low_register_operand, | |
33813 | low_reg_or_int_operand, thumb_16bit_operator): New. | |
33814 | (thumb_cmp_operand, thumb_cmpneg_operand): Rename... | |
33815 | (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this. | |
33816 | * config/arm/t-arm-elf: Add armv7 multilib. | |
33817 | * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm. | |
33818 | Include thumb2.md. | |
33819 | (UNSPEC_STACK_ALIGN, ce_count): New. | |
33820 | (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3, | |
33821 | arm_zero_extendsidi2, arm_zero_extendqidi2): New | |
33822 | insns/expanders. | |
33823 | * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm. | |
33824 | (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa, | |
33825 | thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns. | |
33826 | * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm. | |
33827 | (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn, | |
33828 | thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New | |
33829 | insns. | |
33830 | * doc/extend.texi: Document ARMv7-M interrupt functions. | |
33831 | * doc/invoke.texi: Document Thumb-2 new cores+architectures. | |
33832 | ||
33833 | 2007-01-03 Jakub Jelinek <jakub@redhat.com> | |
33834 | ||
33835 | * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define. | |
33836 | (struct _Unwind_Context): Rename args_size to flags, remove | |
33837 | signal_frame field, add a new args_size field and version field. | |
33838 | (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame, | |
33839 | _Unwind_IsExtendedContext): New inline functions. | |
33840 | (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): | |
33841 | Assume by_value array is only present if _Unwind_IsExtendedContext. | |
33842 | (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use | |
33843 | _Unwind_IsSignalFrame. | |
33844 | (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT. | |
33845 | (uw_update_context_1): Use _Unwind_SetSignalFrame. | |
33846 | (uw_init_context_1): Initialize context->flags to | |
33847 | EXTENDED_CONTEXT_BIT. | |
33848 | * config/rs6000/linux-unwind.h (frob_update_context): Use | |
33849 | _Unwind_SetSignalFrame. | |
33850 | ||
33851 | 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com> | |
33852 | ||
33853 | PR middle-end/30353 | |
33854 | * gimplify.c (gimplify_modify_expr_complex_part): Move below | |
33855 | tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need | |
33856 | the value. | |
33857 | ||
33858 | 2007-01-03 Kazu Hirata <kazu@codesourcery.com> | |
33859 | ||
33860 | * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P, | |
33861 | REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER, | |
33862 | RET, AT_SP): Remove. | |
33863 | * config/i386/i386.md (*sse_prologue_save_insn): Use return | |
33864 | instead of RET. | |
33865 | ||
33866 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. | |
33867 | * cfgbuild.c (find_basic_blocks): Likewise. | |
33868 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
33869 | * function.c (temp_slots_at_level): Likewise. | |
33870 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
33871 | * regclass.c (allocate_reg_info): Likewise. | |
33872 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
33873 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
33874 | * tree-complex.c (tree_lower_complex): Likewise. | |
33875 | * vec.h (VEC_safe_grow_cleared): New. | |
33876 | ||
33877 | * cgraphunit.c, tree-ssa-alias.c: Fix comment typos. | |
33878 | ||
33879 | 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz> | |
33880 | ||
33881 | * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify. | |
33882 | * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities | |
33883 | to loop_version. | |
33884 | * cfgloopmanip.c (scale_loop_frequencies): Export. | |
33885 | (loopify): Scale the frequencies by prescribed coefficients. | |
33886 | (set_zero_probability): New function. | |
33887 | (duplicate_loop_to_header_edge): Improve updating of frequencies. | |
33888 | (lv_adjust_loop_entry_edge, loop_version): Set probabilities | |
33889 | and frequencies according to arguments. | |
33890 | * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities | |
33891 | correctly. | |
33892 | * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up. | |
33893 | * modulo-sched.c (sms_schedule): Set probabilities for entering | |
33894 | versioned loop correctly. | |
33895 | * tree-vect-transform.c (vect_transform_loop): Ditto. | |
33896 | * cfgloop.h (loopify, loop_version): Declaration changed. | |
33897 | (scale_loop_frequencies): Declared. | |
33898 | ||
33899 | 2007-01-02 Jan Hubicka <jh@suse.cz> | |
33900 | ||
33901 | * cgraph.c: Include tree-flow.h | |
33902 | (cgraph_add_new-function): Handle IPA_SSA mode; execute | |
33903 | early_local_passes. | |
33904 | * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA. | |
33905 | * tree-pass.h (pass_all_early_optimizations): Declare. | |
33906 | * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute | |
33907 | early_local_passes. | |
33908 | (cgraph_analyze_function): Do early_local_passes. | |
33909 | * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): | |
33910 | Do not add referenced vars. | |
33911 | * tree-optimize.c (gate_all_optimizations): Do not execute when not in | |
33912 | SSA form. | |
33913 | (gate_all_early_local_passes): New gate. | |
33914 | (pass_early_local_passes): Use new gate. | |
33915 | (execute_early_local_optimizations): New functions. | |
33916 | (gate_all_early_optimizations): New gate. | |
33917 | (pass_all_early_optimizations): New pass. | |
33918 | (execute_free_datastructures): Free SSA only when initialized. | |
33919 | (gate_init_datastructures): Init only when optimizing. | |
33920 | (tree_lowering_passes): Do early local passes when called late. | |
33921 | * tree-profile.c (do_tree_profiling): Don't profile functions added | |
33922 | late. | |
33923 | (do_early_tree_profiling, pass_early_tree_profile): Kill. | |
33924 | * tree-cfg.c (update_modified_stmts): Do not update when operands are | |
33925 | not active. | |
33926 | * passes.c (init_optimizations_passes): Reorder so we go into SSA | |
33927 | during early_local_passes. | |
33928 | * Makefile.in (cgraph.o): Add dependency on tree-flow.h. | |
33929 | ||
33930 | ||
33931 | 2007-01-02 Carlos O'Donell <carlos@codesourcery.com> | |
33932 | ||
33933 | * Makefile.in: Update copyright year. | |
33934 | ||
33935 | 2007-01-02 Carlos O'Donell <carlos@codesourcery.com> | |
33936 | ||
33937 | * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST) | |
33938 | in $(lang_checks) and check-consistency targets. | |
33939 | ||
33940 | 2007-01-02 Jan Hubicka <jh@suse.cz> | |
33941 | ||
33942 | * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): | |
33943 | Do not add referenced vars. | |
33944 | * tree-cfg.c (update_modified_stmts): Do not update when SSA operands | |
33945 | are not active. | |
33946 | * passes.c (init_optimization_passes): Put mudflap_2 after | |
33947 | free_datastructures. | |
33948 | ||
33949 | 2007-01-02 Jan Hubicka <jh@suse.cz> | |
33950 | ||
33951 | * tree-optimize (execute_fixup_cfg): Set after_inlining flag. | |
33952 | Set NOTHROW flag on call statements proved to be nothrow. | |
33953 | Update statement of local calls so new pure/const functions are | |
33954 | updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal | |
33955 | goto receivers. | |
33956 | (tree_rest_of_compilation): Register hooks and initialize bitmap | |
33957 | early. Do not set after_inlining flag. | |
33958 | ||
33959 | 2007-01-02 Steve Ellcey <sje@cup.hp.com> | |
33960 | ||
33961 | * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to | |
33962 | HOST_BITS_PER_LONGLONG | |
33963 | ||
33964 | 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
33965 | ||
33966 | PR c/19977 | |
33967 | * c-typeck.c (store_init_value): Don't emit pedantic overflow | |
33968 | warning for non-static initializers. | |
33969 | ||
33970 | 2007-01-02 Steven Bosscher <steven@gcc.gnu.org> | |
33971 | ||
33972 | * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md, | |
33973 | m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c, | |
33974 | rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c: | |
33975 | Always use set_unique_reg_note to add REG_EQUAL notes. | |
33976 | ||
33977 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> | |
33978 | ||
33979 | Revert: | |
33980 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> | |
33981 | ||
33982 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. | |
33983 | * cfgbuild.c (find_basic_blocks): Likewise. | |
33984 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
33985 | * function.c (temp_slots_at_level): Likewise. | |
33986 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
33987 | * regclass.c (allocate_reg_info): Likewise. | |
33988 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
33989 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
33990 | * tree-complex.c (tree_lower_complex): Likewise. | |
33991 | * vec.h (VEC_safe_grow_cleared): New. | |
33992 | ||
33993 | 2007-01-02 Ian Lance Taylor <iant@google.com> | |
33994 | ||
33995 | * c-common.c (c_common_truthvalue_conversion): When warning about | |
33996 | using an assignment as a truth value, set TREE_NO_WARNING. | |
33997 | ||
33998 | 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
33999 | ||
34000 | PR middle-end/7651 | |
34001 | * c.opt (Wold-style-declaration): New. | |
34002 | * doc/invoke.texi (C-only Warning Options): New. | |
34003 | (Wold-style-declaration): Document it. | |
34004 | (Wextra): Enabled by -Wextra. | |
34005 | * c-opts.c (c_common_post_options): Enabled by -Wextra. | |
34006 | * c-decl.c (declspecs_add_scspec): Replace -Wextra with | |
34007 | -Wold-style-declaration. | |
34008 | ||
34009 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> | |
34010 | ||
34011 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. | |
34012 | * cfgbuild.c (find_basic_blocks): Likewise. | |
34013 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
34014 | * function.c (temp_slots_at_level): Likewise. | |
34015 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
34016 | * regclass.c (allocate_reg_info): Likewise. | |
34017 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
34018 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
34019 | * tree-complex.c (tree_lower_complex): Likewise. | |
34020 | * vec.h (VEC_safe_grow_cleared): New. | |
34021 | ||
34022 | 2007-01-02 Douglas Gregor <doug.gregor@gmail.com> | |
34023 | ||
34024 | * c-common.c (c_common_nodes_and_builtins): Since variants of | |
34025 | void_type_node get built before it is given a name, we need to | |
34026 | give those variants the name, too. | |
34027 | (complete_array_type): We need to work with the canonical main | |
34028 | type of the array, from which we will build the qualified version. | |
34029 | * params.def (PARAM_VERIFY_CANONICAL_TYPES): New. | |
34030 | * print-tree.c (print_node): Display canonical type information | |
34031 | for each type. | |
34032 | * stor-layout.c (layout_type): When we don't know the | |
34033 | alignment of a type for which we're building an array, we end up | |
34034 | guessing wrong, so make the type require structural equality. | |
34035 | * tree.c (make_node_stat): When we build a new type, it is its | |
34036 | own canonical type. | |
34037 | (build_type_attribute_qual_variant): When building an attribute | |
34038 | variant, its canonical type is the non-attribute variant. However, | |
34039 | if the attributes are target-dependent and they differ, we need to | |
34040 | use structural equality checks for this type. | |
34041 | (build_qualified_type): A qualified type is not equivalent to its | |
34042 | unqualified variant; set the canonical type appropriately. | |
34043 | (build_distinct_type_copy): When building a distinct type from | |
34044 | another type, the new type is its own canonical type. | |
34045 | (build_variant_type_copy): When building a new type variant, we | |
34046 | assume that it is equivalent to the original type. | |
34047 | (build_pointer_type_for_mode): When building a pointer type, also | |
34048 | build a canonical type pointer. | |
34049 | (build_reference_type_for_mode): When building a reference type, | |
34050 | also build a canonical type reference. | |
34051 | (build_index_type): When we can't hash an index type (e.g., | |
34052 | because its maximum value is negative), the index type requires | |
34053 | structural equality tests. | |
34054 | (build_array_type): Build the canonical form of an array type. | |
34055 | (build_function_type): Function types require structural equality, | |
34056 | because they contain default arguments, attributes, etc. | |
34057 | (build_method_type_directly): Ditto for method types. | |
34058 | (build_offset_type): Build the canonical offset type. | |
34059 | (build_complex_type): Build the canonical vector type. | |
34060 | (make_vector_type): Build the canonical vector type. | |
34061 | * tree.h (TYPE_CANONICAL): New. | |
34062 | (TYPE_STRUCTURAL_EQUALITY_P): New. | |
34063 | (SET_TYPE_STRUCTURAL_EQUALITY): New. | |
34064 | (struct tree_type): Added "canonical" field. | |
34065 | * params.h (VERIFY_CANONICAL_TYPES): New. | |
34066 | * doc/c-tree.texi (TYPE_CANONICAL): Document. | |
34067 | (TYPE_STRUCTURAL_EQUALITY_P): Document. | |
34068 | (SET_TYPE_STRUCTURAL_EQUALITY): Document. | |
34069 | * doc/invoke.texi (verify-canonical-types): Document --param | |
34070 | parameter for verifying canonical types. | |
34071 | ||
34072 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> | |
34073 | ||
34074 | * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, | |
34075 | powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*, | |
34076 | powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae, | |
34077 | powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to | |
34078 | tm_file. | |
34079 | * config/rs6000/e500.h: New. | |
34080 | * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500, | |
34081 | TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE): | |
34082 | Remove. | |
34083 | * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE, | |
34084 | TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, | |
34085 | TARGET_E500_DOUBLE): Remove. | |
34086 | * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE, | |
34087 | TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove. | |
34088 | * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define. | |
34089 | * config/rs6000/rs6000.c (rs6000_override_options): Use | |
34090 | CHECK_E500_OPTIONS. | |
34091 | ||
34092 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> | |
34093 | ||
34094 | * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE || | |
34095 | TARGET_E500_DOUBLE), not TARGET_E500, for %y. | |
34096 | (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch, | |
34097 | rs6000_emit_cmove): Don't check TARGET_E500. | |
34098 | * config/rs6000/rs6000.md (bunordered, bordered, sunordered, | |
34099 | sordered): Don't check TARGET_E500. | |
34100 | ||
34101 | 2007-01-01 Eric Christopher <echristo@apple.com> | |
34102 | ||
34103 | * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use | |
34104 | HARD_REGISTER_NUM_P. | |
34105 | ||
34106 | 2007-01-01 Roger Sayle <roger@eyesopen.com> | |
34107 | ||
34108 | * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into | |
34109 | "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z | |
34110 | has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2)) | |
34111 | eq/ne Y". | |
34112 | ||
34113 | 2007-01-01 Mike Stump <mrs@apple.com> | |
34114 | ||
34115 | * configure.ac: Remove support for building with Apple's gcc-3.1. | |
34116 | ||
34117 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> | |
34118 | ||
34119 | PR middle-end/30311 | |
34120 | * caller-save.c (add_stored_regs): Only handle SUBREGs if inner | |
34121 | REG is a hard register. Do not modify REG before calling | |
34122 | subreg_nregs. | |
34123 | * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a | |
34124 | multiple of the size of YMODE for certain lowpart cases. | |
34125 | ||
34126 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> | |
34127 | ||
34128 | PR middle-end/30253 | |
34129 | * gimplify (voidify_wrapper_expr): Update for | |
34130 | GIMPLE_MODIFY_STMT. | |
34131 | ||
34132 | 2007-01-01 Andreas Schwab <schwab@suse.de> | |
34133 | ||
34134 | PR target/29166 | |
34135 | * config/ia64/ia64.c (ia64_compute_frame_size): Account space for | |
34136 | save of BR0 in extra_spill_size instead of spill_size. | |
34137 | (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill | |
34138 | area. | |
34139 | (ia64_expand_epilogue): Restore BR0 from its new location. | |
34140 | ||
34141 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> | |
34142 | ||
34143 | * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>): | |
34144 | Use a temporary variable if the left hand side is not a gimple | |
34145 | register. | |
34146 | ||
34147 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> | |
34148 | ||
34149 | * gimplify.c (gimplify_return_expr): Make the temporary variable | |
34150 | for the return expression, a gimple register variable. | |
34151 | ||
34152 | 2007-01-01 Jan Hubicka <jh@suse.cz> | |
34153 | ||
34154 | * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for | |
34155 | INSN_LIST. | |
34156 | ||
34157 | 2007-01-01 Mike Stump <mrs@apple.com> | |
34158 | ||
34159 | * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for | |
34160 | .literal16. | |
34161 | * config/darwin.c (machopic_select_rtx_section): Use | |
34162 | HAVE_GAS_LITERAL16. | |
34163 | (darwin_mergeable_constant_section): Likewise. | |
34164 | * configure: Regenerate. | |
34165 | * config.in: Regenerate. | |
34166 | ||
34167 | 2007-01-01 Jan Hubicka <jh@suse.cz> | |
34168 | Andrew Pinski <pinskia@gmail.com> | |
34169 | ||
34170 | * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions | |
34171 | before starting IPA passes. | |
ad41bd84 JM |
34172 | |
34173 | \f | |
34174 | Copyright (C) 2007 Free Software Foundation, Inc. | |
34175 | ||
34176 | Copying and distribution of this file, with or without modification, | |
34177 | are permitted in any medium without royalty provided the copyright | |
34178 | notice and this notice are preserved. |