aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2008-10-20tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant part of ↵Daniel Berlin2-11/+8
expression. 2008-10-20 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant part of expression. From-SVN: r141249
2008-10-20re PR c/12603 (No return statement warning on function that never returns ↵Manuel López-Ibáñez2-0/+13
with -O3) 2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org> PR 12603 * gcc.dg/pr12603.c: New testcase. From-SVN: r141244
2008-10-20* doc/install.texi: Fix typos in previous patch.Tobias Schlüter2-6/+10
From-SVN: r141240
2008-10-20Daily bump.GCC Administrator1-1/+1
From-SVN: r141236
2008-10-19re PR c++/37004 ([C++ only] Wconversion warns for short y = 0x7fff; short z ↵Manuel López-Ibáñez5-40/+84
= (short) x & y;) 2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c++/37004 cp/ * typeck.c (cp_common_type): New. The same as type_after_usual_arithmetic_conversions but without promotions. (type_after_usual_arithmetic_conversions): Do the promotions and call cp_common_type. (common_type): Make it behave like the C version of this function. Do not handle pointer types. (common_pointer_type): Move handling of pointer types from common_type to here. (cp_build_binary_op): Use common_pointer_type instead of common_type in call to pointer_diff. Use cp_common_type instead of common_type. * cp-tree.h (common_pointer_type): Declare. testsuite/ * g++.dg/warn/Wconversion-pr34389.C: Remove XFAIL. From-SVN: r141233
2008-10-19* doc/install.texi: Document in-tree building of gcc and mpfr.Tobias Schlüter2-3/+19
From-SVN: r141232
2008-10-19tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.Richard Guenther2-10/+4
2008-10-19 Richard Guenther <rguenther@suse.de> * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut. From-SVN: r141229
2008-10-19re PR c/30260 (Enumeration types and enumeration constants erroneously given ↵Manuel López-Ibáñez4-17/+72
unsigned types) 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c/30260 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type. (build_enumerator): Convert enumerators that fit in integer to integer type. testsuite/ * gcc.dg/pr30260.c: New. From-SVN: r141224
2008-10-19Convert gcc/testsuite/ChangeLog to UTF-8.Manuel López-Ibáñez1-8/+8
Command used: LC_ALL=C sed -i \ -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \ -e 's/\(Av\|\xc3\xc2v\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \ -e 's/Esp\(in\|\xc3\xc2\xadn\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \ -e 's/Schl\(u\|\xc3\xc2\xbc\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \ -e 's/Humi\(e\|\xe8\|\xc3\xc2\xa8\)res/Humi\xc3\xa8res/' \ -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \ -e 's/G\xfctlein/G\xc3\xbctlein/' \ -e 's/G\xe1[b]or/G\xc3\xa1bor/' \ -e 's/L\xf3ki/L\xc3\xb3ki/' \ -e 's/Fautr\xc3 /Fautr\xc3\xa9 /' \ -e 's/S\xe9[b]astian/S\xc3\xa9bastian/' \ -e 's/Th\xef\xbf\xbd[d]ore/Th\xc3\xa9odore/' \ -e 's/Cors\xc3\xc2\xa9pius/Cors\xc3\xa9pius/' \ -e 's/K\xfchl/K\xc3\xbchl/' \ -e 's/R\xf6nnerup/R\xc3\xb6nnerup/' \ -e 's/L\xf8vset/L\xc3\xb8vset/' \ -e 's/Ph\x81\xfb\x81\xf4ng-Th\x81\xe5o/Ph\xc3\xbb\xc3\xb4ng-Th\xc3\xa5o/' \ -e 's/V\x81\xf5/V\xc3\xb5/' \ -e 's/J\xf6nsson/J\xc3\xb6nsson/' \ -e 's/V\xef\xbf\xbdis\xef\xbf\xbdnen/V\xc3\xa4is\xc3\xa4nen/' \ -e 's/J\xef\xbf\xbdrg/J\xc3\xb6rg/' \ -e 's/M\xef\xbf\xbdsli/M\xc3\xb6sli/' \ -e 's/R\xe4ty/R\xc3\xa4ty/' \ -e 's/2003\xc2\xad-/2003-/' \ -e 's/\xc2\xa0/ /g' \ -e 's/ \xa0/ /g' \ -e 's/\xa0 //' \ gcc/testsuite/ChangeLog From-SVN: r141223
2008-10-19re PR fortran/37723 (wrong result for left-right hand side array overlap and ↵Paul Thomas4-0/+47
(possibly) negative strides) 2008-10-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/37723 * dependency.c (gfc_dep_resolver ): If we find equal array element references, go on to the next reference. 2008-10-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/37723 * gfortran.dg/dependency_22.f90: New test. From-SVN: r141221
2008-10-19Daily bump.GCC Administrator1-1/+1
From-SVN: r141217
2008-10-18i386.md (unnamed peephole2): Do not force memory operands of arith or ↵Uros Bizjak3-73/+84
logical instructions into registers... * config/i386/i386.md (unnamed peephole2): Do not force memory operands of arith or logical instructions into registers for non-TARGET_READ_MODIFY targets. (ffs_cmove): Change operand 0 predicate to register_operand. Change operand 1 predicate to nonimmediate_operand. (ffsdi2): Ditto. (*ffs_no_cmove): Change operand 0 predicate to register_operand. From-SVN: r141213
2008-10-18tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard VIEW_CONVERT_EXPR ↵Richard Guenther2-18/+28
case against invalid gimple. 2008-10-18 Richard Guenther <rguenther@suse.de> * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard VIEW_CONVERT_EXPR case against invalid gimple. From-SVN: r141212
2008-10-18dll-2.c: Revert revision 138893: Change "dg-message" back to "dg-warning".Danny Smith3-3/+9
* gcc.dg/dll-2.c: Revert revision 138893: Change "dg-message" back to "dg-warning". * gcc.dg/dll-3.c: Likewise. From-SVN: r141209
2008-10-18Daily bump.GCC Administrator1-1/+1
From-SVN: r141205
2008-10-17trans.c (gnat_to_gnu): Simplify expansion to use only a single check instead ↵Geert Bosch2-47/+48
of three... * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion to use only a single check instead of three, and avoid unnecessary COMPOUND_EXPR. (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes creating more opportunities for optimizations. From-SVN: r141198
2008-10-17c-parser.c (c_parser_binary_expression): Silence the uninitialized variable ↵Andreas Krebbel2-1/+6
warning emitted for binary_loc. 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com> * c-parser.c (c_parser_binary_expression): Silence the uninitialized variable warning emitted for binary_loc. From-SVN: r141193
2008-10-17Daily bump.GCC Administrator1-1/+1
From-SVN: r141185
2008-10-16tree-ssa-pre.c (phi_translate_set): Add constants to phi translation cache.Daniel Berlin2-3/+7
2008-10-16 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-pre.c (phi_translate_set): Add constants to phi translation cache. From-SVN: r141182
2008-10-16re PR target/37381 (ICE in ia64_speculate_insn, at config/ia64/ia64.c:6902)Alexander Monakov2-0/+102
2008-10-16 Alexander Monakov <amonakov@ispras.ru> PR target/37381 * gcc.c-torture/compile/pr37381.c: New test. From-SVN: r141177
2008-10-16re PR c/33192 (__imag operator drops side effects in subexpr)Joseph Myers4-1/+30
PR c/33192 * c-typeck.c (build_unary_op): Use omit_one_operand for IMAGPART_EXPR of real argument. testsuite: * gcc.dg/imag-1.c: New test. From-SVN: r141176
2008-10-16resolve.c (resolve_elemental_actual): Handle calls to intrinsic subroutines ↵Daniel Kraft4-2/+30
correctly. 2008-10-16 Daniel Kraft <d@domob.eu> * resolve.c (resolve_elemental_actual): Handle calls to intrinsic subroutines correctly. 2008-10-16 Daniel Kraft <d@domob.eu> * gfortran.dg/elemental_intrinsic_1.f03: New test. From-SVN: r141175
2008-10-16re PR tree-optimization/37664 (ice in remove_range_assertions, at ↵Jakub Jelinek4-1/+25
tree-vrp.c:5116) PR tree-optimization/37664 * fold-const.c (fold_binary): When optimizing comparison with highest or lowest type's value, don't consider TREE_OVERFLOW. * gcc.c-torture/compile/pr37664.c: New test. From-SVN: r141171
2008-10-16re PR c++/35483 (GCC on AIX doesn't support dollar in symbols name.)David Edelsohn10-7/+31
gcc/ PR target/35483 * Makefile.in (coverage.o): Depend on $(TM_P_H). * coverage.c: Include tm_p.h. * config/rs6000/x-aix (jc1): Override LDFLAGS. * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip dollar signs from PREFIX. * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME instead of manual strip_name_encoding. java/ PR target/35483 * Make-lang.in (class.o): Depend on $(TM_P_H). (expr.o): Same. * class.c: Include tm_p.h. * expr.c: Include tm_p.h. From-SVN: r141170
2008-10-16re PR middle-end/37418 (error: type mismatch in address expression, ↵Richard Biener7-3/+46
verify_gimple failed) 2008-10-16 Joseph Myers <joseph@codesourcery.com> Richard Guenther <rguenther@suse.de> PR middle-end/37418 * tree-ssa.c (useless_type_conversion_p_1): Do not treat volatile qualified functions or methods as relevant. * gcc.c-torture/compile/pr37418-1.c, gcc.c-torture/compile/pr37418-2.c, gcc.c-torture/compile/pr37418-3.c, gcc.c-torture/compile/pr37418-4.c: New tests. From-SVN: r141165
2008-10-16re PR tree-optimization/37525 (IVOPTS difference causing 20% degradation in ↵Jakub Jelinek2-32/+79
173.applu benchmark) PR tree-optimization/37525 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend sizetype unsigned constants, both in the case of C and bounds. From-SVN: r141164
2008-10-15ira-emit.c (change_regs): Return false when replacing reg by itself.Jan Hubicka2-1/+10
2008-10-15 Jan Hubicka <jh@suse.cz> * ira-emit.c (change_regs): Return false when replacing reg by itself. From-SVN: r141163
2008-10-16re PR target/37633 (wrong register use on sh64)Vladimir Makarov2-2/+8
2008-10-14 Vladimir Makarov <vmakarov@redhat.com> PR target/37633 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check HARD_REGNO_CALL_PART_CLOBBERED. From-SVN: r141161
2008-10-16re PR middle-end/37535 (gcc/libgcc2.c:404: internal compiler error: Floating ↵Vladimir Makarov3-35/+193
point exception) 2008-10-15 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/37535 * ira-lives.c (mark_early_clobbers): Remove. (make_pseudo_conflict, check_and_make_def_use_conflicts, check_and_make_def_conflicts, make_early_clobber_and_input_conflicts, mark_hard_reg_early_clobbers): New functions. (process_bb_node_lives): Call make_early_clobber_and_input_conflicts and mark_hard_reg_early_clobbers. Make hard register inputs live again. * doc/rtl.texi (clobber): Change descriotion of RA behaviour for early clobbers of pseudo-registers. From-SVN: r141160
2008-10-16re PR middle-end/37674 (Bootstrap failure due to miscompilation of genattrtab)Vladimir Makarov2-22/+26
2008-10-15 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/37674 * ira-build.c (ira_flattening): Recalculate ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS from the scratch instead of the propagation. From-SVN: r141159
2008-10-16Daily bump.GCC Administrator1-1/+1
From-SVN: r141157
2008-10-15Commit omitted ChangeLog from r141134David Edelsohn1-0/+17
From-SVN: r141154
2008-10-15rtl.texi (const_double): Remove the "addr" operand.Richard Sandiford3-57/+55
gcc/ * doc/rtl.texi (const_double): Remove the "addr" operand. Describe CONST_DOUBLE_* macros under const_double rather than const_vector. (const_fixed): Fix the operand description. (const): Add an @findex directive. (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description after the constant rtl table. (fix): Combine floating-point and fixed-point descriptions. Fix hyphenation. * sched-deps.c (sched_analyze_2): Remove reference to CONST_DOUBLE_CHAIN. From-SVN: r141149
2008-10-15mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTSYM_OFFs.Richard Sandiford5-15/+25
gcc/ * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTSYM_OFFs. * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true for UNSPEC_GOTSYM_OFFs. * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec. (add_GOT_to_pic_reg): Use it. * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF. From-SVN: r141148
2008-10-15re PR libfortran/34670 (bounds checking for array intrinsics)Thomas Koenig5-4/+14
2008-10-15 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34670 * intrinsics/reshape_generic.c: Add bounds checking. * m4/reshape.m4: Likewise. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. * generated/spread_r4.c: Regenerated. 2008-10-15 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34670 * gfortran.dg/reshape_3.f90: New test. * gfortran.dg/reshape_4.f90: New test. * gfortran.dg/reshape_order_1.f90: Use correct shape. * gfortran.dg/reshape_order_2.f90: Likewise. * gfortran.dg/reshape_order_3.f90: Likewise. * gfortran.dg/reshape_order_4.f90: Likewise. From-SVN: r141144
2008-10-15[multiple changes]Sebastian Pop6-57/+308
2008-10-15 Jan Sjodin <jan.sjodin@amd.com> Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/37485 * graphite.c (gmp_cst_to_tree): Moved. (iv_stack_entry_is_constant): New. (iv_stack_entry_is_iv): New. (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv. (loop_iv_stack_insert_constant): New. (loop_iv_stack_pop): Use new datatpype. (loop_iv_stack_get_iv): Same. (loop_iv_stack_get_iv_from_name): Same. (loop_iv_stack_debug): Renamed to debug_loop_iv_stack. (loop_iv_stack_patch_for_consts): New. (loop_iv_stack_remove_constants): New. (graphite_create_new_loop): Use loop_iv_stack_push_iv. (translate_clast): Call loop_iv_stack_patch_for_consts and loop_iv_stack_remove_constants. (gloog): Use new datatype. Redirect construction edge to end block to avoid accidental deletion. * graphite.h (enum iv_stack_entry_kind): New. Tag for data in iv stack entry. (union iv_stack_entry_data): New. Data in iv stack entry. (struct iv_stack_entry): New. Datatype for iv stack entries. 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> * tree-data-ref.c (stmt_simple_memref_p): Fix memleak. * graphite.c (free_scop): Same. (build_scops): Same. (free_scattering): New. (build_cloog_prog): Call free_scattering. (patch_phis_for_virtual_defs): Fix memleak. (graphite_trans_bb_strip_mine): Same. (limit_scops): Same. From-SVN: r141143
2008-10-15re PR middle-end/37828 ([graphite] ICE in expand_scalar_variables_expr, at ↵Sebastian Pop4-3/+47
graphite.c:3421 with -floop-block) 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/37828 * testsuite/gcc.dg/graphite/pr37828.c: New. * graphite.c (graphite_trans_loop_block): Do not loop block single nested loops. Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com> From-SVN: r141142
2008-10-15re PR tree-optimization/37686 (Building of CPU2000's bzip2 with peak flags ↵Sebastian Pop6-14/+91
with -mcpu=power4 fails with an ICE.) 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/37686 * testsuite/gcc.dg/tree-ssa/pr37686.c: New. * tree-loop-linear.c (linear_transform_loops): Build a loop nest vector. Pass it to lambda_compute_access_matrices. * tree-data-ref.h (struct access_matrix): Store the loop nest relative to which it encodes the information. (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST. (am_vector_index_for_loop): Reimplemented: iterate over the loop nest for finding the loop index in the access matrix. (lambda_compute_access_matrices): Update declaration. * lambda-code.c (build_access_matrix): Pass the loop nest and record it. (lambda_compute_access_matrices): Same. From-SVN: r141141
2008-10-15s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.Andreas Krebbel3-21/+29
2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT. * config/s390/s390.md: Replace "TARGET_HARD_FLOAT && TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this already implies hard float. Also fix several insn condition with TARGET_DFP which shall require TARGET_HARD_DFP instead. From-SVN: r141138
2008-10-15re PR c++/35483 (GCC on AIX doesn't support dollar in symbols name.)David Edelsohn8-11/+108
PR target/35483 Based on patches by Laurent Vivier. * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore. * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare. * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate dollar sign to underscore. (ASM_OUTPUT_EXTERNAL): Same. (ASM_OUTPUT_LABELREF): New. * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New. * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define. * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define. * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define. * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define. From-SVN: r141134
2008-10-15constants.c (build_constant_data_ref): Make sure we only build one copy of ↵Andrew Haley2-13/+22
the decl for the constant pool. 2008-10-14 Andrew Haley <aph@redhat.com> * constants.c (build_constant_data_ref): Make sure we only build one copy of the decl for the constant pool. From-SVN: r141133
2008-10-15re PR tree-optimization/36881 (Creating runtime relocations for code which ↵Jakub Jelinek4-5/+57
does not need it) PR tree-optimization/36881 * tree-switch-conversion.c (check_final_bb): For flag_pic, check that each value doesn't need runtime relocations, for !flag_pic check that each value is just a valid initializer constant. * gcc.dg/tree-ssa/pr36881.c: New test. From-SVN: r141129
2008-10-15Revert unintended commit.Jakub Jelinek1-22/+5
From-SVN: r141128
2008-10-15Daily bump.GCC Administrator1-1/+1
From-SVN: r141126
2008-10-14re PR c++/37819 (ice for bitfield code)Jakub Jelinek4-2/+30
PR c++/37819 * cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPR arguments if they don't already have COND_EXPR's type. * g++.dg/expr/bitfield11.C: New test. From-SVN: r141118
2008-10-14mips.h (reg_class): Remove HI_AND_GR_REGS...Richard Sandiford3-54/+77
gcc/ * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS, LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS, COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS. Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and GR_AND_ACC_REGS. (REG_CLASS_NAMES): Update accordingly. (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments, rather than an unpredictable descriptive string. * config/mips/mips.c (mips_register_move_cost): Remove comment. (mips_register_move_cost): Check for specific COP*_REGS classes, instead of ALL_COP_AND_GR_REGS. (mips_ira_cover_classes): New function. (mips_secondary_reload_class): Remove MTLO and MTHI workarounds. (TARGET_IRA_COVER_CLASSES): Define. From-SVN: r141117
2008-10-14re PR c++/37650 (ICE with broken default template parameter)Paolo Carlini4-4/+27
/cp 2008-10-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/37650 * pt.c (push_template_decl_real): Check that current_template_parms is not null. (process_partial_specialization): Assert current_template_parms not null. /testsuite 2008-10-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/37650 * g++.dg/template/crash83.C: New. From-SVN: r141115
2008-10-14re PR c++/37553 (ICE in build_c_cast)Douglas Gregor4-5/+56
2008-10-14 Douglas Gregor <doug.gregor@gmail.com> PR c++/37553 * tree.c (build_type_attribute_qual_variant): Hash on the unqualified type, and don't overwrite an existing (type_hash_eq): Make the TYPE_NAME of the types significant, to allow distinguishing between wchar_t and its underlying type. This also means that we'll retain a little more typedef information. 2008-10-14 Douglas Gregor <doug.gregor@gmail.com> PR c++/37553 * g++.dg/ext/alias-canon2.C: New. From-SVN: r141111
2008-10-14target.h (struct gcc_target): Update prototypes of needs_block_p and ↵Andrey Belevantsev10-437/+1214
gen_spec_check. 2008-10-14 Andrey Belevantsev <abel@ispras.ru> Dmitry Melnik <dm@ispras.ru> Dmitry Zhurikhin <zhur@ispras.ru> Alexander Monakov <amonakov@ispras.ru> Maxim Kuvyrkov <maxim@codesourcery.com> * target.h (struct gcc_target): Update prototypes of needs_block_p and gen_spec_check. * haifa-sched.c (create_check_block_twin): Update calls to the above. * sel-sched.c (create_speculation_check): Likewise. * doc/tm.texi: Provide documentation for new target hooks. * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks. (ia64_gen_spec_insn): Removed. (get_spec_check_gen_function, insn_can_be_in_speculative_p, ia64_gen_spec_check): New static functions. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions. (ia64_needs_block_p): Change prototype. (ia64_gen_check): Rename to ia64_gen_spec_check. (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter into declaration, add special memory dependencies handling. (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): Define new target hooks. (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. (ia64_optimization_options): Turn on selective scheduling with -O3, disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default with selective scheduling. (ia64_override_options): Initialize align_loops and align_functions to 32 and 64, respectively. Set global selective scheduling flags according to target-dependent flags. (rtx_needs_barrier): Support UNSPEC_LDS_A. (group_barrier_needed): Use new mstop-bit-before-check flag. Add heuristic. (dfa_state_size): Make global. (spec_check_no, max_uid): Remove. (mem_ops_in_group, current_cycle): New variables. (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload. Initialize new variables. (is_load_p, record_memory_reference): New functions. (ia64_dfa_sched_reorder): Lower priority of loads when limit is reached. (ia64_variable_issue): Change use of current_sched_info to sched_deps_info. Update comment. Note if a load or a store is issued. (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle advance if maximal number of loads or stores was issued on current cycle. (scheduled_good_insn): New static helper function. (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when a group barrier is needed. Fix vertical spacing. Guard the code doing state transition with last_scheduled_insn check. Mark that a stop bit should be before current insn if there was a cycle advance. Update current_cycle and mem_ops_in_group. (ia64_h_i_d_extended): Change use of current_sched_info to sched_deps_info. Reallocate stops_p by larger chunks. (struct _ia64_sched_context): New structure. (ia64_sched_context_t): New typedef. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context): New static functions. (gen_func_t): New typedef. (get_spec_load_gen_function): New function. (SPEC_GEN_EXTEND_OFFSET): Declare. (ia64_set_sched_flags): Check common_sched_info instead of *flags. (get_mode_no_for_insn): Change the condition that prevents use of special hardware registers so it can now handle pseudos. (get_spec_unspec_code): New function. (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions. (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks during selective scheduling. (ia64_speculate_insn): Use ds_get_speculation_types when determining whether we need to change the pattern. (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare. (ia64_spec_check_src_p): Support new speculation/check codes. (struct bundle_state): New field. (issue_nops_and_insn): Initialize it. (insert_bundle_state): Minimize mid-bundle stop bits. (important_for_bundling_p): New function. (get_next_important_insn): Use important_for_bundling_p. (bundling): When shifting TImode from unimportant insns, ignore also group barriers. Assert that best state is found before the backward bundling pass. Print number of mid-bundle stop bits. Minimize mid-bundle stop bits. Check correct calculation of mid-bundle stop bits. (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting. (final_emit_insn_group_barriers): Emit stop bits before insns starting a new cycle. (sel2_run): New variable. (ia64_reorg): When flag_selective_scheduling2 is set, run the selective scheduling pass instead of schedule_ebbs. * config/ia64/ia64.md (speculable1, speculable2): New attributes. (UNSPEC_LDS_A): New UNSPEC. (movqi_internal, movhi_internal, movsi_internal, movdi_internal, movti_internal, movsf_internal, movdf_internal, movxf_internal): Make visible. Add speculable* attributes. (output_c_nc): New mode attribute. (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a, mov<mode>_nc, zero_extend<mode>di2_nc, advanced_load_check_nc_<mode>): New insns. (zero_extend*): Add speculable* attributes. * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option. (msched-stop-bits-after-every-cycle): Likewise. (msched-max-memory-insns, msched-max-memory-insns-hard-limit): Likewise. (msched-spec-verbose): Remove. (msched-prefer-non-data-spec-insns, msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path, msel-sched-dont-check-control-spec): Use Target Report Var instead of Common Report Var. * config/ia64/itanium2.md: Remove incorrect bypass. * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h. Co-Authored-By: Alexander Monakov <amonakov@ispras.ru> Co-Authored-By: Dmitry Melnik <dm@ispras.ru> Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru> Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com> From-SVN: r141108
2008-10-14re PR middle-end/37805 (gcc --help=separate)Jakub Jelinek2-3/+7
PR middle-end/37805 * opts.c (common_handle_option): Don't ICE on -fhelp=joined and -fhelp=separate. From-SVN: r141106