aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2004-12-18re PR middle-end/16417 (crappy code (gcc.c-torture/compile/20020210-1.c) in ↵Richard Henderson10-108/+169
arguments causes ICE) PR middle-end/16417 * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion comment. * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes checks. * c-tree.h (struct lang_decl): Remove pending_sizes. * function.c: Include tree-gimple.h (assign_parm_setup_reg): Remove callee-copies code. (gimplify_parm_type, gimplify_parameters): New functions. (expand_pending_sizes): Remove. (expand_function_start): Don't call it. * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL. (gimplify_body): Add do_parms argument. Use gimplify_parameters. (gimplify_function_tree): Setup cfun. Update gimplify_body call. * tree-gimple.h (gimplify_body): Update decl. * tree-inline.c (initialize_inlined_parameters): Update gimplify_body call. * tree.h (gimplify_parameters): Declare. * Makefile.in (function.o): Depend on TREE_GIMPLE_H. From-SVN: r92373
2004-12-18c-decl.c (finish_struct): Add DECL_EXPR for variable sized structures seen ↵Richard Henderson3-0/+26
inside functions. * c-decl.c (finish_struct): Add DECL_EXPR for variable sized structures seen inside functions. From-SVN: r92371
2004-12-18c-decl.c (grokdeclarator): Save variable array size before subtracting 1, ↵Richard Henderson2-2/+11
rather than after. * c-decl.c (grokdeclarator): Save variable array size before subtracting 1, rather than after. From-SVN: r92370
2004-12-19Daily bump.GCC Administrator1-1/+1
From-SVN: r92368
2004-12-18re PR middle-end/15486 (-fdata-sections moves common vars to .bss)Eric Botcazou4-11/+38
PR middle-end/15486 * varasm.c (asm_emit_uninitialised): Return early if a custom section is requested. (assemble_variable): Revert 2002-03-15 patch. From-SVN: r92365
2004-12-18re PR tree-optimization/18800 (ivopt missed)Zdenek Dvorak4-27/+187
PR tree-optimization/18800 * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): New functions. (iv_ca_extend): Return number of candidates in the set. (try_add_cand_for): Add argument to iv_ca_extend calls. (try_improve_iv_set): Use iv_ca_prune. * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. From-SVN: r92363
2004-12-18* stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.Richard Henderson2-2/+6
From-SVN: r92362
2004-12-18re PR rtl-optimization/19001 (Loops with power of two step and variable ↵Zdenek Dvorak2-16/+79
bounds not unrolled) PR rtl-optimization/19001 * loop-iv.c (iv_number_of_iterations): Record assumptions for loops with power of two step to 'infinite' field. From-SVN: r92361
2004-12-18Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h.Roger Sayle2-22/+43
* Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h. (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h. (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h. (tree-mudflap.o): Depend upon gt-tree-mudflap.h. (expr.o): Depend upon gt-expr.h. (regclass.o): Depend upon gt-regclass.h. (bitmap.o): Depend upon gt-bitmap.h. (lists.o): Depend upon gt-lists.h. (cfgexpand.o): Don't depend upon gt-tree-cfg.h. (GTFILES): Remove fold-const.c. (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h): Remove rules. From-SVN: r92360
2004-12-18stor-layout.c (layout_decl): Unshare size expressions copied from the type.Richard Henderson2-2/+5
* stor-layout.c (layout_decl): Unshare size expressions copied from the type. From-SVN: r92359
2004-12-18fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when BOTTOM is a power of two.Richard Henderson2-0/+12
* fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when BOTTOM is a power of two. From-SVN: r92358
2004-12-18tree-nested.c (save_tmp_var): New.Richard Henderson2-8/+62
* tree-nested.c (save_tmp_var): New. (struct walk_stmt_info): Add is_lhs. (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of val_only; set is_lhs. (convert_nonlocal_reference): Use save_tmp_var when is_lhs; clear is_lhs when appropriate. (convert_local_reference): Likewise. From-SVN: r92357
2004-12-18ieee754-sf.S (floatdisf): Fix label definition in FPA compatibility code.Richard Earnshaw2-1/+6
* arm/ieee754-sf.S (floatdisf): Fix label definition in FPA compatibility code. From-SVN: r92356
2004-12-18ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p.Roger Sayle2-15/+35
* ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p. Take a max_cost argument to avoid scanning large blocks, by returning a Boolean instead of a total. Include the cost of a "fstp %st(0)" instruction required to pop dead values off of a register stack. From-SVN: r92352
2004-12-18re PR middle-end/18548 (Miscompiles code generated by Gambit-C Scheme->C ↵Roger Sayle4-1/+51
compiler) PR middle-end/18548 * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0 and op1 are all registers (or constants) before expanding the RTL comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. * gcc.dg/max-1.c: New test case. From-SVN: r92351
2004-12-18re PR rtl-optimization/16968 (loop optimizer miscompilation)Eric Botcazou4-0/+130
PR rtl-optimization/16968 * loop.c (scan_loop): Stop scanning the loop for movable insns as soon as an optimization barrier is encountered. From-SVN: r92348
2004-12-18re PR middle-end/18897 (/usr/ccs/bin/ld: Unsatisfied symbols: putchar (first ↵Zack Weinberg2-6/+17
referenced in build/gengenrtl.o) (data)) PR 18897 * toplev.c (compile_file): Call process_pending_assemble_externals just before targetm.asm_out.file_end. From-SVN: r92347
2004-12-18Daily bump.GCC Administrator1-1/+1
From-SVN: r92343
2004-12-17tree-optimize.c (init_tree_optimization_passes): Run ↵Diego Novillo6-4/+45
pass_late_warn_uninitialized before the last DCE run. tree-optimization/18501 * tree-optimize.c (init_tree_optimization_passes): Run pass_late_warn_uninitialized before the last DCE run. testsuite/ChangeLog: * gcc.dg/pr18501.c: New test. * gcc.dg/uninit-5.c: XFAIL. * gcc.dg/uninit-9.c: XFAIL. From-SVN: r92337
2004-12-17i386.c (x86_64_reg_class_name): Re-indent.Richard Henderson4-183/+287
* config/i386/i386.c (x86_64_reg_class_name): Re-indent. (classify_argument, examine_argument, construct_container, merge_classes): Remove prototypes. (type_natural_mode): Split out from ... (function_arg): ... here. (gen_reg_or_parallel): Remove alt_mode argument. Update callers. Use orig_mode unless it's BLKmode. (construct_container): Add orig_mode argument. Update callers. Use gen_reg_or_parallel for SSE registers. (ix86_function_value): Use type_natural_mode. (ix86_gimplify_va_arg): Likewise. (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in SSE registers; always accept all MMX, 3DNOW modes in MMX registers. * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include VALID_MMX_REG_MODE. * config/i386/i386.md (attribute mode): Add V1DF. (movsi_1): Use 'x' instead of 'Y' constraints. (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise. (movdi_1_rex64_nointerunit): Likewise. (movdf_nointeger, movdf_integer): Likewise. Handle SSE1. (movsf_1, movsf_1_nointerunit): Line up constraint alternatives. (swapsf): Use fp_register_operand, don't disable for TARGET_SSE. (swapdf): Likewise. (swapxf): Enable only for TARGET_80387. (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX. (movtf): Remove double-check for TARGET_64BIT. (movv2df_internal): Enable for SSE1. (movv8hi_internal, movv16qi_internal): Likewise. (movv2df, movv8hi, movv16qi): Likewise. (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise. (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal, movv8qi_internal, movv4hi_internal, movv2sf_internal, movv2df_internal, movv8hi_internal, movv16qi_internal, movti_internal): Add leading '*' to name. From-SVN: r92336
2004-12-17c-decl.c (diagnose_mismatched_decls): Accept mismatched function types: void ↵Dale Johannesen4-1/+54
with previous implicit int. 2004-12-17 Dale Johannesen <dalej@apple.com> * c-decl.c (diagnose_mismatched_decls): Accept mismatched function types: void with previous implicit int. From-SVN: r92329
2004-12-17stabs-1.m: Allow assembly label to begin with a dot ('.').Ziemowit Laski2-1/+6
[gcc/testsuite/ChangeLog] 2004-12-17 Ziemowit Laski <zlaski@apple.com> * objc.dg/stabs-1.m: Allow assembly label to begin with a dot ('.'). From-SVN: r92328
2004-12-17init.c (build_zero_init): max_index is the number of elements, minus 1.Steven Bosscher2-1/+10
* init.c (build_zero_init): max_index is the number of elements, minus 1. From-SVN: r92323
2004-12-1720041213-1.c: Move...Jakub Jelinek2-0/+5
* gcc.c-torture/execute/20041213-1.c: Move... * gcc.c-torture/execute/ieee/20041213-1.c: ...to here. From-SVN: r92318
2004-12-17fix typoed PR numberNathan Sidwell3-3/+3
From-SVN: r92317
2004-12-17re PR c++/17821 (Poor diagnostic for using . instead of ->)Nathan Sidwell6-22/+52
cp: PR c++/17821 * class.c (add_method): Do not push conversion operators into a binding level. * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE_TYPE): Reformat. * error.c (dump_decl): <TYPE_DECL case> Remove extraneous braces. testsuite: PR c++/17821 * g++.dg/lookup/conv-5.C: New. From-SVN: r92316
2004-12-17re PR java/18931 (Java bytecode ICE in except.c remove_unreachable_regions)Andrew Haley4-19/+16
2004-12-17 Andrew Haley <aph@redhat.com> PR java/18931 * typeck.c (convert): Use a CONVERT_EXPR when converting to BOOLEAN_TYPE or CHAR_TYPE. (convert_to_boolean, convert_to_char) : Remove. * convert.h (convert_to_boolean, convert_to_char) : Remove. * expr.c (expand_load_internal): Do type conversion if type is not as required. From-SVN: r92314
2004-12-17s390.c (s390_gimplify_va_arg): Set alias set to s390_sr_alias_set.Andreas Krebbel2-0/+6
2004-12-17 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to s390_sr_alias_set. From-SVN: r92313
2004-12-17re PR target/17603 (cpowf and cpowl give wrong results)Jan Beulich2-11/+32
2004-12-17 Jan Beulich <jbeulich@novell.com> PR target/17603 * config/i386/i386.c (enum x86_64_reg_class): Define X86_64_COMPLEX_X87_CLASS. (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS. (merge_classes): Handle X86_64_COMPLEX_X87_CLASS. (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS. (examine_argument): X86_64_COMPLEX_X87_CLASS requires two registers when dealing with a return value. (construct_container): Handle X86_64_COMPLEX_X87_CLASS. Eliminate impossible case of two X87/X87UP pairs (this now is being expressed by a single COMPLEX_X87). (x86_libcall_value): XCmode gets returned in st0/st1. From-SVN: r92312
2004-12-17tree.c (type_contains_placeholder_1): Always return false for VECTOR_TYPE if ↵Steven Bosscher2-3/+9
its TREE_TYPE does not contain a placeholder. * tree.c (type_contains_placeholder_1): Always return false for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder. From-SVN: r92310
2004-12-17* config/i386/i386.md (extendsfdf2, *extendsfdf2_1,Uros Bizjak2-11/+47
*extendsfdf2_1_sse_only): Unify enable constraint with respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and TARGET_MIX_SSE_I387. (*extendsfdf2_i387): New insn pattern. (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix register constraint for operand 0. (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse. (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387. From-SVN: r92308
2004-12-17stabs-1.m: New test.Ziemowit Laski2-0/+22
[gcc/testsuite/ChangeLog] 2004-12-16 Ziemowit Laski <zlaski@apple.com> * objc.dg/stabs-1.m: New test. From-SVN: r92302
2004-12-16visibility-c.c: Change compile to assemble for the test.Andrew Pinski2-2/+6
2004-12-16 Andrew Pinski <pinskia@physics.uc.edu> * gcc.dg/visibility-c.c: Change compile to assemble for the test. From-SVN: r92293
2004-12-16re PR target/19041 (-fvisibility=hidden causes bad codegen for common symbols)Andrew Pinski4-7/+43
2004-12-16 Andrew Pinski <pinskia@physics.uc.edu> PR target/19041 * config/darwin.c (machopic_symbol_defined_p): Return false if the binds local and is a common symbol. 2004-12-16 Andrew Pinski <pinskia@physics.uc.edu> PR target/19041 * gcc.dg/visibility-c.c: New test. From-SVN: r92292
2004-12-17Daily bump.GCC Administrator1-1/+1
From-SVN: r92290
2004-12-16i386.md (extv, [...]): Revalidate the operand with ext_register_operand.Richard Henderson2-3/+8
* config/i386/i386.md (extv, extzv, insv): Revalidate the operand with ext_register_operand. From-SVN: r92287
2004-12-16* global.c: Fix a comment typo.Kazu Hirata2-1/+5
From-SVN: r92286
2004-12-16* de.po: Update.Joseph Myers2-631/+371
From-SVN: r92283
2004-12-16re PR tree-optimization/18707 (Performance regression at -O2 with gzip)Eric Botcazou2-7/+29
PR tree-optimization/18707 * cfgloopmanip.c (create_preheader): Move the preheader only if the latch was falling through to the header. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r92282
2004-12-16re PR target/18997 (Segmentation Violation in pthread_getspecific)Danny Smith2-0/+9
gcc PR target/18997 * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0. libstdc++-v3 PR target/18997 * config/os/newlib/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define to 0 for __CYGWIN__. From-SVN: r92281
2004-12-16simplify-rtx.c (simplify_replace_rtx): Do not blindly replace hard registers.Richard Henderson2-1/+7
* simplify-rtx.c (simplify_replace_rtx): Do not blindly replace hard registers. [[Split portion of a mixed commit.]] Co-Authored-By: Aldy Hernandez <aldyh@redhat.com> From-SVN: r92278.2
2004-12-16re PR other/18508 ("basename: too few arguments" when building without ↵H.J. Lu11-15/+27
bootstrap) 2004-12-14 H.J. Lu <hongjiu.lu@intel.com> PR other/18508 * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix to back up the existing shared library. * config/arm/t-netbsd (SHLIB_LINK): Likewise. * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. * config/sh/t-linux (SHLIB_LINK): Likewise. * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. * config/t-slibgcc-sld (SHLIB_LINK): Likewise. * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary file. From-SVN: r92276
2004-12-16trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix comment typo.Tobias Schlüter2-3/+8
* trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix comment typo. From-SVN: r92274
2004-12-16re PR middle-end/18493 (gcc doesn't like switch blocks without case/default ↵Roger Sayle2-0/+15
labels) PR middle-end/18493 * gcc.dg/switch-8.c: New test case. From-SVN: r92271
2004-12-16Makefile.in (MD_DEPS, s-mddeps): New.Richard Henderson5-15/+131
* Makefile.in (MD_DEPS, s-mddeps): New. (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output, s-preds): Depend on MD_DEPS instead of md_file. (genobjnames): Add genmddeps.o (build/genmddeps, build/genmddeps.o): New. (mostlyclean): Remove mddeps.mk. * genmddeps.c: New file. * gensupport.c (include_callback): New. (process_include): Call it. * gensupport.h (include_callback): Declare. From-SVN: r92269
2004-12-16local-alloc.c (block_alloc): Replace IN_RANGE with simple comparison.Nathan Sidwell2-3/+5
* local-alloc.c (block_alloc): Replace IN_RANGE with simple comparison. From-SVN: r92268
2004-12-16* doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.Nathan Sidwell2-5/+14
From-SVN: r92263
2004-12-16s390.c (struct processor_costs): Two new fields: madbr, maebr.Mark Dettinger2-3/+19
2004-12-16 Mark Dettinger <dettinge@de.ibm.com> * config/s390/s390.c (struct processor_costs): Two new fields: madbr, maebr. (s390_rtx_costs): Added handling of multipy and add in SFmode. More precise values for cost of multiply and add. From-SVN: r92259
2004-12-16re PR c++/18905 (Strange error: subscripted value is neither array nor pointer)Nathan Sidwell13-110/+112
cp: PR c++/18905 * cp-tree.h (integral_constant_value): Declare. * call.c (null_ptr_cst_p): Use integral_constant_value, not decl_constant_value. (convert_like_real): Likewise. * class.c (check_bitfield_decl): Likewise. * cvt.c (ocp_convert): Likewise. (convert): Remove unnecessary decl_constant_value call. * decl.c (compute_array_index_type): Use integral_constant_value, not decl_constant_value. (build_enumerator): Likewise. * decl2.c (grokfield): Likewise. * init.c (decl_constant_value): Simplify. (integral_constant_value): New. * pt.c (fold_decl_constant_value): Use integral_constant_value, remove subsequent check. (tsubst): Use integral_constant_value, not decl_constant_value. (tsubst_copy, unify): Likewise. * typeck.c (decay_conversion): Likewise. (build_compound_expr): Remove unnecessary decl_constant_value calls. (build_static_cast_1, build_reinterpret_cast_1): (convert_for_assignment): Remove comment about not calling decl_constant_value. testsuite: PR c++/18905 * g++.dg/template/init4.C: New. * g++.dg/opt/static3.C: Enable optimizer. From-SVN: r92257
2004-12-16* g++.dg/other/complex1.C: New test.Wolfgang Bangerth2-0/+32
From-SVN: r92254