]>
Commit | Line | Data |
---|---|---|
a6ccdbab EC |
1 | 2007-01-07 Eric Christopher <echristo@apple.com> |
2 | ||
3 | * configure.ac: Check for __stack_chk_fail for darwin. | |
4 | * configure: Regenerate. | |
5 | ||
b881887e RG |
6 | 2007-01-07 Richard Guenther <rguenther@suse.de> |
7 | ||
8 | * tree-vrp.c (extract_range_from_assert): CSE calls to | |
9 | compare_values where possible. | |
10 | (extract_range_from_unary_expr): Likewise. | |
11 | ||
696e990b AS |
12 | 2007-01-07 Anatoly Sokolov <aesok@post.ru> |
13 | ||
14 | * config/avr/avr-protos.h (call_insn_operand): Delete prototype. | |
15 | * config/avr/avr.c (call_insn_operand): Delete function. | |
16 | * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP | |
17 | instead of register number. Use predicates. | |
a6ccdbab | 18 | * config/avr/predicates.md (const0_operand, reg_or_0_operand, |
696e990b AS |
19 | call_insn_operand): Add. |
20 | ||
2dee695b JH |
21 | 2007-01-06 Jan Hubicka <jh@suse.cz> |
22 | ||
23 | * tree-pass.h (pass_build_cgraph_edges): Declare. | |
24 | * cgraphunit.c (record_refernece): Move to cgraphbuild.c | |
25 | (visited_nodes): Remove. | |
26 | (cgraph_create_edges): Move to cgraphbuild.c; rename to | |
27 | build_cgrpah_edges; make visited_nodes local. | |
28 | (cgraph_process_new_functions): DO not call initialize_inline_failed. | |
29 | (record_references_in_initializer): Move to cgraphbuild.c | |
30 | (initialize_inline_failed, rebuild_cgraph_edges, | |
31 | pass_rebuild_cgraph_edges): Move to cgraphbuild.c. | |
32 | (verify_cgraph_node): Make visited_nodes local. | |
33 | (cgraph_analyze_function): Do not call cgraph_create_edges and | |
34 | initialize_inline_failed. | |
35 | (cgraph_expand_function): Do not call cgraph_lower_function; | |
36 | assert that function is already lowered. | |
37 | * Makefile.in (cgraphbuild.o): New. | |
38 | * passes.c (init_optimization_passes): Add pass_build_cgraph_edges | |
39 | at the end of lowering passes. | |
40 | ||
dc1f5a11 SB |
41 | 2007-01-06 Steven Bosscher <steven@gcc.gnu.org> |
42 | ||
43 | * ifcvt.c (cond_move_convert_if_block): New function, code | |
44 | factored out from... | |
45 | (cond_move_process_if_block): ...here. Call the new function | |
46 | on the THEN and ELSE blocks. | |
47 | (merge_if_block): Do not copy global_live_at_end, merge_blocks | |
48 | already takes care of this. | |
49 | ||
59c0753d MLI |
50 | 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
51 | ||
52 | PR c/19978 | |
53 | * tree.h (TREE_OVERFLOW_P): New. | |
54 | * c-typeck.c (parser_build_unary_op): Warn only if result | |
55 | overflowed and operands did not. | |
56 | (parser_build_binary_op): Likewise. | |
57 | (convert_for_assignment): Remove redundant overflow_warning. | |
58 | * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW. | |
59 | ||
c2658540 MLI |
60 | 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
61 | ||
62 | * c-typeck.c (store_init_value): Split over two lines to follow | |
63 | the GNU coding style. | |
64 | ||
c573f4d5 BK |
65 | 2007-01-05 Benjamin Kosnik <bkoz@redhat.com> |
66 | ||
67 | * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to | |
68 | __GXX_EXPERIMENTAL_CXX0X__. | |
69 | * doc/cpp.texi: Same. | |
70 | ||
afe1a916 RG |
71 | 2007-01-05 Richard Guenther <rguenther@suse.de> |
72 | ||
73 | PR middle-end/27826 | |
74 | * tree.c (get_narrower): Do not construct COMPONENT_REFs | |
75 | with mismatched types. Instead explicitly build a | |
76 | conversion NOP_EXPR. | |
77 | ||
b3c6d2ea ILT |
78 | 2007-01-05 Ian Lance Taylor <iant@google.com> |
79 | ||
80 | * c-common.c (decl_with_nonnull_addr_p): New function. | |
81 | (c_common_truthvalue_conversion): Call it. | |
82 | * c-typeck.c (build_binary_op): Likewise. | |
83 | * c-common.h (decl_with_nonnull_addr_p): Declare. | |
84 | ||
698ac934 JJ |
85 | 2007-01-05 Jakub Jelinek <jakub@redhat.com> |
86 | ||
87 | PR c/30360 | |
88 | * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of | |
89 | denom against 0.0. | |
90 | ||
4b322f43 JB |
91 | 2007-01-05 Joel Brobecker <brobecker@adacore.com> |
92 | ||
93 | * doc/install.texi (Final install): Document the fact that | |
94 | the GNAT runtime should not be stripped. | |
95 | ||
9477eb38 JH |
96 | 2007-01-04 Jan Hubicka <jh@suse.cz> |
97 | ||
98 | * tree-inline.c (fold_marked_statements): Update operand caches | |
99 | and EH after folding | |
100 | ||
dfd0a3de ILT |
101 | 2007-01-04 Ian Lance Taylor <iant@google.com> |
102 | ||
103 | * c-common.c (check_function_nonnull): Whitespace fix. | |
104 | ||
59e50498 JH |
105 | 2007-01-04 Jan Hubicka <jh@suse.cz> |
106 | ||
107 | * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely | |
108 | comitted older version of patch. | |
109 | (pass_fixup_cfg): Add TODOs to verify flow and statements, dump | |
110 | function, celanup cfg and collect garbage. | |
111 | ||
a87948f7 MS |
112 | 2007-01-04 Mike Stump <mrs@apple.com> |
113 | ||
114 | * Makefile.in (mostlyclean): Don't remove libgcc anymore. | |
115 | (clean): Likewise. | |
116 | ||
e4b6bec2 EC |
117 | 2007-01-04 Eric Christopher <echristo@apple.com> |
118 | ||
119 | * libgcc2.c (__bswapsi2): Use SItype. | |
120 | (__bswapdi2): Use DItype. | |
121 | * libgcc2.h: Update for above. | |
122 | ||
d6c397b0 PB |
123 | 2007-01-04 Paul Brook <paul@codesourcery.com> |
124 | ||
125 | * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0, | |
126 | mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0, | |
127 | mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3, | |
128 | umulsidi3, umulsidi3adddi, smulsi3_highpart, | |
129 | umulsi3_highpart): Make conditional on !arm_arch6. | |
130 | (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6, | |
131 | mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6, | |
132 | mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6, | |
133 | umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6, | |
134 | umulsi3_highpart_v6): New insns. | |
135 | ||
bd7e4636 RS |
136 | 2007-01-04 Roger Sayle <roger@eyesopen.com> |
137 | ||
138 | * fold-const.c (fold_convert): When casting an expression to void, | |
139 | fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't | |
140 | have a type. Instead of attempting to build a NOP_EXPR, return | |
141 | these "special" trees directly. | |
142 | ||
762c919f JM |
143 | 2007-01-04 Joseph Myers <joseph@codesourcery.com> |
144 | ||
145 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for | |
146 | MULT inside MINUS as either argument. Use rs6000_cost->dmul - | |
147 | rs6000_cost->fp not 0 as adjustment for outer NEG. | |
148 | ||
3a40c18a JH |
149 | 2007-01-04 Jan Hubicka <jh@suse.cz> |
150 | ||
151 | * cgraph.c (cgraph_release_function_body): New function. | |
152 | (cgraph_remove_node): Use it. | |
153 | * cgraph.h (cgraph_release_function_body): Declare. | |
154 | * cgraphunit.c (cgraph_expand_function): Use it. | |
155 | * ipa.c (cgraph_remove_unreahchable_nodes): Use it. | |
156 | * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing | |
157 | is initialized and while compilation of other function is running. | |
158 | * tree-optimize.c (execute_free_cfg_annotations): Move code to clear | |
159 | statement CFG annotations from here to ... | |
160 | * tree-cfg.c (delete_tree_cfg_annotations): ... here. | |
161 | ||
b06e8639 ZD |
162 | 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz> |
163 | ||
164 | * cfgloop.h (enum li_flags): Make the constants powers of two. | |
165 | ||
b8a00a4d JH |
166 | 2007-01-04 Jan Hubicka <jh@suse.cz> |
167 | ||
168 | * tree-inline.c (copy_bb): Insert new statements to statements_to_fold | |
169 | set. | |
170 | (fold_marked_statements): New function. | |
171 | (optimize_inline_calls, tree_function_versioning): Fold new statements. | |
b06e8639 | 172 | * tree-inline.h (copy_body_data): Add statements_to_fold. |
b8a00a4d | 173 | |
fa958513 DJ |
174 | 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com> |
175 | ||
176 | * config.gcc: Mention libgcc/config.host. | |
177 | * Makefile.in: Update comments mentioning libgcc. | |
178 | (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. | |
179 | (all.cross, start.encap, rest.encap, rest.cross): Update | |
180 | dependencies for libgcc move. | |
181 | (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) | |
182 | (clean-target, clean-target-libgcc): Delete. | |
183 | (srcdirify, GCC_EXTRA_PARTS): New macros. | |
184 | (libgcc-support, libgcc.mvars): New rules. | |
185 | (distclean): Remove mention of mklibgcc. | |
186 | (install): Don't reference INSTALL_LIBGCC. | |
187 | (install-common): Don't reference EXTRA_PARTS. | |
188 | (install-libgcc, install-multilib): Delete rules. | |
189 | * mklibgcc.in: Delete file. | |
190 | * doc/configfiles.texi: Don't mention mklibgcc. | |
191 | ||
192 | * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). | |
193 | * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. | |
194 | * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. | |
195 | * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) | |
196 | (mklibgcc, ldblspecs): Likewise. | |
197 | ||
198 | * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) | |
199 | (posixpre.def): Use $(T). | |
200 | (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) | |
201 | (SHLIB_SRC, SHLIB_INSTALL): Delete. | |
202 | (SHLIB_LINK): Make dummy. | |
203 | * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. | |
204 | ||
205 | * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. | |
206 | ||
207 | * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. | |
208 | * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, | |
209 | config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, | |
210 | config/rs6000/t-newas, config/sparc/t-elf: Likewise. | |
211 | ||
212 | * configure.ac (all_outputs): Remove mklibgcc. | |
213 | * configure: Regenerated. | |
214 | ||
7816b87e JC |
215 | 2007-01-03 Josh Conner <jconner@apple.com> |
216 | ||
217 | PR middle-end/29683 | |
218 | * calls.c (compute_argument_addresses): Set stack and stack_slot | |
219 | for partial args, too. | |
220 | (store_one_arg): Use locate.size.constant for the size when | |
221 | generating a save_area. | |
222 | ||
611021e1 RK |
223 | 2007-01-03 Robert Kennedy <jimbob@google.com> |
224 | ||
225 | * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results | |
226 | whose definitions are deleted due to basic block merging. | |
227 | ||
a15908a4 PB |
228 | 2007-01-03 Paul Brook <paul@codesourcery.com> |
229 | ||
230 | PR target/16634 | |
231 | * config/arm/arm.c (output_return_instruction): Pop PC in interrupt | |
232 | functions. | |
233 | (use_return_insn): Return 0 for Thumb interrupt functions. | |
234 | (print_multi_reg): Add rfe argument for IRQ returns. | |
235 | (arm_output_epilogue): Pop interrupt return address directly into PC. | |
236 | (arm_expand_prologue): Only adjust IRQ return address in Arm mode. | |
237 | ||
5b3e6663 PB |
238 | 2007-01-03 Paul Brook <paul@codesourcery.com> |
239 | ||
240 | Merge from sourcerygxx-4_1. | |
241 | * config/arm/thumb2.md: New file. | |
242 | * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for | |
243 | Thumb-2. | |
244 | * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto. | |
245 | * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. | |
246 | (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables. | |
247 | * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump | |
248 | tables. | |
249 | (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. | |
250 | * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm | |
251 | comptibility. | |
252 | * config/arm/ieee754-sf.S: Ditto. | |
253 | * config/arm/arm.c (thumb_base_register_rtx_p): Rename... | |
254 | (thumb1_base_register_rtx_p): ... to this. | |
255 | (thumb_index_register_rtx_p): Rename... | |
256 | (thumb1_index_register_rtx_p): ... to this. | |
257 | (thumb_output_function_prologue): Rename... | |
258 | (thumb1_output_function_prologue): ... to this. | |
259 | (thumb_legitimate_address_p): Rename... | |
260 | (thumb1_legitimate_address_p): ... to this. | |
261 | (thumb_rtx_costs): Rename... | |
262 | (thumb1_rtx_costs): ... to this. | |
263 | (thumb_compute_save_reg_mask): Rename... | |
264 | (thumb1_compute_save_reg_mask): ... to this. | |
265 | (thumb_final_prescan_insn): Rename... | |
266 | (thumb1_final_prescan_insn): ... to this. | |
267 | (thumb_expand_epilogue): Rename... | |
268 | (thumb1_expand_epilogue): ... to this. | |
269 | (arm_unwind_emit_stm): Rename... | |
270 | (arm_unwind_emit_sequence): ... to this. | |
271 | (thumb2_legitimate_index_p, thumb2_legitimate_address_p, | |
272 | thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec, | |
273 | thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem, | |
274 | arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition, | |
275 | thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift, | |
276 | thumb2_output_casesi): New functions. | |
277 | (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define. | |
278 | (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7, | |
279 | FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME, | |
280 | THUMB2_WORK_REGS): Define. | |
281 | (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count, | |
282 | arm_condexec_mask, arm_condexec_masklen)): New variables. | |
283 | (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m. | |
284 | (arm_override_options): Check new CPU capabilities. | |
285 | Set new architecture flag variables. | |
286 | (arm_isr_value): Handle v7m interrupt functions. | |
287 | (user_return_insn): Return 0 for v7m interrupt functions. Handle | |
288 | Thumb-2. | |
289 | (const_ok_for_arm): Handle Thumb-2 constants. | |
290 | (arm_gen_constant): Ditto. Use movw when available. | |
291 | (arm_function_ok_for_sibcall): Return false for v7m interrupt | |
292 | functions. | |
293 | (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2. | |
294 | (thumb_find_work_register, arm_load_pic_register, | |
295 | legitimize_tls_address, arm_address_cost, load_multiple_sequence, | |
296 | emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size, | |
297 | print_multi_reg, output_mov_long_double_fpa_from_arm, | |
298 | output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm, | |
299 | output_mov_double_fpa_from_arm, output_move_double, | |
300 | arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask, | |
301 | output_return_instruction, arm_output_function_prologue, | |
302 | arm_output_epilogue, arm_get_frame_offsets, arm_regno_class, | |
303 | arm_output_mi_thunk, thumb_set_return_address): Ditto. | |
304 | (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs. | |
305 | (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC. | |
306 | (arithmetic_instr, shift_op): Use arm_shift_nmem. | |
307 | (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.', | |
308 | '!' and 'L'. | |
309 | (arm_final_prescan_insn): Use extract_constrain_insn_cached. | |
310 | (thumb_expand_prologue): Use thumb_set_frame_pointer. | |
311 | (arm_file_start): Output directive for unified syntax. | |
312 | (arm_unwind_emit_set): Handle stack alignment instruction. | |
313 | * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__. | |
314 | Add v6t2, v7, v7a, v7r and v7m. | |
315 | (RETLDM): Add Thumb-2 code. | |
316 | (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros. | |
317 | * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__. | |
318 | (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY, | |
319 | TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN, | |
320 | THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS, | |
321 | ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS, | |
322 | THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE, | |
323 | CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END, | |
324 | ADJUST_INSN_LENGTH): Define. | |
325 | (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE, | |
326 | STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS, | |
327 | BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES, | |
328 | PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS, | |
329 | SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, | |
330 | TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT, | |
331 | HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP, | |
332 | HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG, | |
333 | REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P, | |
334 | REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, | |
335 | LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS, | |
336 | GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST, | |
337 | ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME, | |
338 | FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P, | |
339 | PRINT_OPERAND_ADDRESS): Adjust for Thumb-2. | |
340 | (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations. | |
341 | * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and | |
342 | cortex-m3. | |
343 | * config/arm/arm-tune.md: Regenerate. | |
344 | * config/arm/arm-protos.h: Update prototypes. | |
345 | * config/arm/vfp.md: Enable patterns for Thumb-2. | |
346 | (arm_movsi_vfp): Add movw alternative. Use output_move_vfp. | |
347 | (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp. | |
348 | (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp, | |
349 | thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New. | |
350 | * config/arm/libunwind.S: Add Thumb-2 code. | |
351 | * config/arm/constraints.md: Update include Thumb-2. | |
352 | * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support. | |
353 | * config/arm/ieee754-df.S: Ditto. | |
354 | * config/arm/bpabi.S: Ditto. | |
355 | * config/arm/t-arm (MD_INCLUDES): Add thumb2.md. | |
356 | * config/arm/predicates.md (low_register_operand, | |
357 | low_reg_or_int_operand, thumb_16bit_operator): New. | |
358 | (thumb_cmp_operand, thumb_cmpneg_operand): Rename... | |
359 | (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this. | |
360 | * config/arm/t-arm-elf: Add armv7 multilib. | |
361 | * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm. | |
362 | Include thumb2.md. | |
363 | (UNSPEC_STACK_ALIGN, ce_count): New. | |
364 | (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3, | |
365 | arm_zero_extendsidi2, arm_zero_extendqidi2): New | |
366 | insns/expanders. | |
367 | * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm. | |
368 | (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa, | |
369 | thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns. | |
370 | * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm. | |
371 | (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn, | |
372 | thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New | |
373 | insns. | |
374 | * doc/extend.texi: Document ARMv7-M interrupt functions. | |
375 | * doc/invoke.texi: Document Thumb-2 new cores+architectures. | |
376 | ||
f8e7718c JJ |
377 | 2007-01-03 Jakub Jelinek <jakub@redhat.com> |
378 | ||
379 | * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define. | |
380 | (struct _Unwind_Context): Rename args_size to flags, remove | |
381 | signal_frame field, add a new args_size field and version field. | |
382 | (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame, | |
383 | _Unwind_IsExtendedContext): New inline functions. | |
384 | (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): | |
385 | Assume by_value array is only present if _Unwind_IsExtendedContext. | |
386 | (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use | |
387 | _Unwind_IsSignalFrame. | |
388 | (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT. | |
389 | (uw_update_context_1): Use _Unwind_SetSignalFrame. | |
390 | (uw_init_context_1): Initialize context->flags to | |
391 | EXTENDED_CONTEXT_BIT. | |
392 | * config/rs6000/linux-unwind.h (frob_update_context): Use | |
393 | _Unwind_SetSignalFrame. | |
394 | ||
d9c2d296 AP |
395 | 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
396 | ||
798d1cc9 | 397 | PR middle-end/30353 |
d9c2d296 AP |
398 | * gimplify.c (gimplify_modify_expr_complex_part): Move below |
399 | tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need | |
400 | the value. | |
401 | ||
8a2fcf91 KH |
402 | 2007-01-03 Kazu Hirata <kazu@codesourcery.com> |
403 | ||
404 | * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P, | |
405 | REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER, | |
406 | RET, AT_SP): Remove. | |
407 | * config/i386/i386.md (*sse_prologue_save_insn): Use return | |
408 | instead of RET. | |
409 | ||
a590ac65 KH |
410 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. |
411 | * cfgbuild.c (find_basic_blocks): Likewise. | |
412 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
413 | * function.c (temp_slots_at_level): Likewise. | |
414 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
415 | * regclass.c (allocate_reg_info): Likewise. | |
416 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
417 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
418 | * tree-complex.c (tree_lower_complex): Likewise. | |
419 | * vec.h (VEC_safe_grow_cleared): New. | |
420 | ||
d60ab196 KH |
421 | * cgraphunit.c, tree-ssa-alias.c: Fix comment typos. |
422 | ||
a590ac65 | 423 | 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz> |
03cb2019 ZD |
424 | |
425 | * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify. | |
426 | * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities | |
427 | to loop_version. | |
428 | * cfgloopmanip.c (scale_loop_frequencies): Export. | |
429 | (loopify): Scale the frequencies by prescribed coefficients. | |
430 | (set_zero_probability): New function. | |
431 | (duplicate_loop_to_header_edge): Improve updating of frequencies. | |
432 | (lv_adjust_loop_entry_edge, loop_version): Set probabilities | |
433 | and frequencies according to arguments. | |
434 | * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities | |
435 | correctly. | |
436 | * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up. | |
437 | * modulo-sched.c (sms_schedule): Set probabilities for entering | |
438 | versioned loop correctly. | |
439 | * tree-vect-transform.c (vect_transform_loop): Ditto. | |
440 | * cfgloop.h (loopify, loop_version): Declaration changed. | |
441 | (scale_loop_frequencies): Declared. | |
442 | ||
7a388ee4 JH |
443 | 2007-01-02 Jan Hubicka <jh@suse.cz> |
444 | ||
445 | * cgraph.c: Include tree-flow.h | |
446 | (cgraph_add_new-function): Handle IPA_SSA mode; execute | |
447 | early_local_passes. | |
448 | * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA. | |
449 | * tree-pass.h (pass_all_early_optimizations): Declare. | |
450 | * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute | |
451 | early_local_passes. | |
452 | (cgraph_analyze_function): Do early_local_passes. | |
453 | * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): | |
454 | Do not add referenced vars. | |
455 | * tree-optimize.c (gate_all_optimizations): Do not execute when not in | |
456 | SSA form. | |
457 | (gate_all_early_local_passes): New gate. | |
458 | (pass_early_local_passes): Use new gate. | |
459 | (execute_early_local_optimizations): New functions. | |
460 | (gate_all_early_optimizations): New gate. | |
461 | (pass_all_early_optimizations): New pass. | |
462 | (execute_free_datastructures): Free SSA only when initialized. | |
463 | (gate_init_datastructures): Init only when optimizing. | |
464 | (tree_lowering_passes): Do early local passes when called late. | |
465 | * tree-profile.c (do_tree_profiling): Don't profile functions added | |
466 | late. | |
467 | (do_early_tree_profiling, pass_early_tree_profile): Kill. | |
468 | * tree-cfg.c (update_modified_stmts): Do not update when operands are | |
469 | not active. | |
470 | * passes.c (init_optimizations_passes): Reorder so we go into SSA | |
471 | during early_local_passes. | |
472 | * Makefile.in (cgraph.o): Add dependency on tree-flow.h. | |
473 | ||
474 | ||
ce7b00a8 CD |
475 | 2007-01-02 Carlos O'Donell <carlos@codesourcery.com> |
476 | ||
477 | * Makefile.in: Update copyright year. | |
478 | ||
b3e7b87f CD |
479 | 2007-01-02 Carlos O'Donell <carlos@codesourcery.com> |
480 | ||
481 | * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST) | |
482 | in $(lang_checks) and check-consistency targets. | |
483 | ||
ed1a2abd JH |
484 | 2007-01-02 Jan Hubicka <jh@suse.cz> |
485 | ||
03cb2019 ZD |
486 | * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): |
487 | Do not add referenced vars. | |
488 | * tree-cfg.c (update_modified_stmts): Do not update when SSA operands | |
489 | are not active. | |
490 | * passes.c (init_optimization_passes): Put mudflap_2 after | |
491 | free_datastructures. | |
ed1a2abd | 492 | |
de6bd996 JH |
493 | 2007-01-02 Jan Hubicka <jh@suse.cz> |
494 | ||
495 | * tree-optimize (execute_fixup_cfg): Set after_inlining flag. | |
496 | Set NOTHROW flag on call statements proved to be nothrow. | |
497 | Update statement of local calls so new pure/const functions are | |
498 | updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal | |
499 | goto receivers. | |
500 | (tree_rest_of_compilation): Register hooks and initialize bitmap | |
501 | early. Do not set after_inlining flag. | |
502 | ||
a063525a SE |
503 | 2007-01-02 Steve Ellcey <sje@cup.hp.com> |
504 | ||
505 | * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to | |
e4b6bec2 | 506 | HOST_BITS_PER_LONGLONG |
a063525a | 507 | |
b405ac80 MLI |
508 | 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
509 | ||
510 | PR c/19977 | |
511 | * c-typeck.c (store_init_value): Don't emit pedantic overflow | |
512 | warning for non-static initializers. | |
e4b6bec2 | 513 | |
bd94cb6e SB |
514 | 2007-01-02 Steven Bosscher <steven@gcc.gnu.org> |
515 | ||
516 | * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md, | |
517 | m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c, | |
518 | rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c: | |
519 | Always use set_unique_reg_note to add REG_EQUAL notes. | |
520 | ||
61465e75 KH |
521 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> |
522 | ||
523 | Revert: | |
524 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> | |
525 | ||
526 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. | |
527 | * cfgbuild.c (find_basic_blocks): Likewise. | |
528 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
529 | * function.c (temp_slots_at_level): Likewise. | |
530 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
531 | * regclass.c (allocate_reg_info): Likewise. | |
532 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
533 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
534 | * tree-complex.c (tree_lower_complex): Likewise. | |
535 | * vec.h (VEC_safe_grow_cleared): New. | |
536 | ||
537 | 2007-01-02 Ian Lance Taylor <iant@google.com> | |
fbc8d2d3 ILT |
538 | |
539 | * c-common.c (c_common_truthvalue_conversion): When warning about | |
540 | using an assignment as a truth value, set TREE_NO_WARNING. | |
541 | ||
b1ed4cb4 MLI |
542 | 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
543 | ||
544 | PR middle-end/7651 | |
545 | * c.opt (Wold-style-declaration): New. | |
546 | * doc/invoke.texi (C-only Warning Options): New. | |
547 | (Wold-style-declaration): Document it. | |
548 | (Wextra): Enabled by -Wextra. | |
549 | * c-opts.c (c_common_post_options): Enabled by -Wextra. | |
550 | * c-decl.c (declspecs_add_scspec): Replace -Wextra with | |
551 | -Wold-style-declaration. | |
e4b6bec2 | 552 | |
d887a682 KH |
553 | 2007-01-02 Kazu Hirata <kazu@codesourcery.com> |
554 | ||
555 | * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. | |
556 | * cfgbuild.c (find_basic_blocks): Likewise. | |
557 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
558 | * function.c (temp_slots_at_level): Likewise. | |
559 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
560 | * regclass.c (allocate_reg_info): Likewise. | |
561 | * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, | |
562 | set_bb_for_stmt, move_block_to_fn): Likewise. | |
563 | * tree-complex.c (tree_lower_complex): Likewise. | |
564 | * vec.h (VEC_safe_grow_cleared): New. | |
565 | ||
06d40de8 DG |
566 | 2007-01-02 Douglas Gregor <doug.gregor@gmail.com> |
567 | ||
568 | * c-common.c(c_common_nodes_and_builtins): Since variants of | |
569 | void_type_node get built before it is given a name, we need to | |
e4b6bec2 | 570 | give those variants the name, too. |
06d40de8 DG |
571 | (complete_array_type): We need to work with the canonical main |
572 | type of the array, from which we will build the qualified version. | |
573 | * params.def (PARAM_VERIFY_CANONICAL_TYPES): New. | |
574 | * print-tree.c (print_node): Display canonical type information | |
575 | for each type. | |
576 | * stor-layout.c (layout_type): When we don't know the | |
577 | alignment of a type for which we're building an array, we end up | |
578 | guessing wrong, so make the type require structural equality. | |
579 | * tree.c (make_node_stat): When we build a new type, it is its | |
580 | own canonical type. | |
581 | (build_type_attribute_qual_variant): When building an attribute | |
582 | variant, its canonical type is the non-attribute variant. However, | |
583 | if the attributes are target-dependent and they differ, we need to | |
584 | use structural equality checks for this type. | |
585 | (build_qualified_type): A qualified type is not equivalent to its | |
586 | unqualified variant; set the canonical type appropriately. | |
587 | (build_distinct_type_copy): When building a distinct type from | |
588 | another type, the new type is its own canonical type. | |
589 | (build_variant_type_copy): When building a new type variant, we | |
590 | assume that it is equivalent to the original type. | |
591 | (build_pointer_type_for_mode): When building a pointer type, also | |
592 | build a canonical type pointer. | |
593 | (build_reference_type_for_mode): When building a reference type, | |
594 | also build a canonical type reference. | |
595 | (build_index_type): When we can't hash an index type (e.g., | |
596 | because its maximum value is negative), the index type requires | |
597 | structural equality tests. | |
598 | (build_array_type): Build the canonical form of an array type. | |
599 | (build_function_type): Function types require structural equality, | |
e4b6bec2 | 600 | because they contain default arguments, attributes, etc. |
06d40de8 DG |
601 | (build_method_type_directly): Ditto for method types. |
602 | (build_offset_type): Build the canonical offset type. | |
603 | (build_complex_type): Build the canonical vector type. | |
604 | (make_vector_type): Build the canonical vector type. | |
605 | * tree.h (TYPE_CANONICAL): New. | |
606 | (TYPE_STRUCTURAL_EQUALITY_P): New. | |
607 | (SET_TYPE_STRUCTURAL_EQUALITY): New. | |
608 | (struct tree_type): Added "canonical" field. | |
609 | * params.h (VERIFY_CANONICAL_TYPES): New. | |
610 | * doc/c-tree.texi (TYPE_CANONICAL): Document. | |
611 | (TYPE_STRUCTURAL_EQUALITY_P): Document. | |
612 | (SET_TYPE_STRUCTURAL_EQUALITY): Document. | |
613 | * doc/invoke.texi (verify-canonical-types): Document --param | |
614 | parameter for verifying canonical types. | |
615 | ||
eca0d5e8 JM |
616 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> |
617 | ||
618 | * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, | |
619 | powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*, | |
620 | powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae, | |
621 | powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to | |
622 | tm_file. | |
623 | * config/rs6000/e500.h: New. | |
624 | * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500, | |
625 | TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE): | |
626 | Remove. | |
627 | * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE, | |
628 | TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, | |
629 | TARGET_E500_DOUBLE): Remove. | |
630 | * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE, | |
631 | TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove. | |
632 | * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define. | |
633 | * config/rs6000/rs6000.c (rs6000_override_options): Use | |
634 | CHECK_E500_OPTIONS. | |
635 | ||
8ef65e3d JM |
636 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> |
637 | ||
638 | * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE || | |
639 | TARGET_E500_DOUBLE), not TARGET_E500, for %y. | |
640 | (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch, | |
641 | rs6000_emit_cmove): Don't check TARGET_E500. | |
642 | * config/rs6000/rs6000.md (bunordered, bordered, sunordered, | |
643 | sordered): Don't check TARGET_E500. | |
644 | ||
d8934cf1 EC |
645 | 2007-01-01 Eric Christopher <echristo@apple.com> |
646 | ||
647 | * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use | |
648 | HARD_REGISTER_NUM_P. | |
649 | ||
cf06e5c1 RS |
650 | 2007-01-01 Roger Sayle <roger@eyesopen.com> |
651 | ||
652 | * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into | |
653 | "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z | |
654 | has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2)) | |
655 | eq/ne Y". | |
656 | ||
e68ea32e MS |
657 | 2007-01-01 Mike Stump <mrs@apple.com> |
658 | ||
659 | * configure.ac: Remove support for building with Apple's gcc-3.1. | |
660 | ||
a446b4e8 JM |
661 | 2007-01-02 Joseph Myers <joseph@codesourcery.com> |
662 | ||
663 | PR middle-end/30311 | |
664 | * caller-save.c (add_stored_regs): Only handle SUBREGs if inner | |
665 | REG is a hard register. Do not modify REG before calling | |
666 | subreg_nregs. | |
667 | * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a | |
668 | multiple of the size of YMODE for certain lowpart cases. | |
669 | ||
c0893ec0 AP |
670 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> |
671 | ||
672 | PR middle-end/30253 | |
673 | * gimplify (voidify_wrapper_expr): Update for | |
e7073e64 | 674 | GIMPLE_MODIFY_STMT. |
c0893ec0 | 675 | |
ae1e2d4c AS |
676 | 2007-01-01 Andreas Schwab <schwab@suse.de> |
677 | ||
678 | PR target/29166 | |
679 | * config/ia64/ia64.c (ia64_compute_frame_size): Account space for | |
680 | save of BR0 in extra_spill_size instead of spill_size. | |
681 | (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill | |
682 | area. | |
683 | (ia64_expand_epilogue): Restore BR0 from its new location. | |
684 | ||
9bed0a34 AP |
685 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> |
686 | ||
687 | * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>): | |
688 | Use a temporary variable if the left hand side is not a gimple | |
689 | register. | |
690 | ||
a441d616 AP |
691 | 2007-01-01 Andrew Pinski <pinskia@gmail.com> |
692 | ||
693 | * gimplify.c (gimplify_return_expr): Make the temporary variable | |
694 | for the return expression, a gimple register variable. | |
695 | ||
95e2a53b JH |
696 | 2007-01-01 Jan Hubicka <jh@suse.cz> |
697 | ||
698 | * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for | |
699 | INSN_LIST. | |
700 | ||
5708d18d MS |
701 | 2007-01-01 Mike Stump <mrs@apple.com> |
702 | ||
703 | * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for | |
704 | .literal16. | |
705 | * config/darwin.c (machopic_select_rtx_section): Use | |
706 | HAVE_GAS_LITERAL16. | |
707 | (darwin_mergeable_constant_section): Likewise. | |
708 | * configure: Regenerate. | |
709 | * config.in: Regenerate. | |
710 | ||
03c72655 JH |
711 | 2007-01-01 Jan Hubicka <jh@suse.cz> |
712 | Andrew Pinski <pinskia@gmail.com> | |
713 | ||
714 | * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions | |
715 | before starting IPA passes. |