Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
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
|
|
From-SVN: r141240
|
|
From-SVN: r141236
|
|
= (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
|
|
From-SVN: r141232
|
|
2008-10-19 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
From-SVN: r141229
|
|
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
|
|
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
|
|
(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
|
|
From-SVN: r141217
|
|
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
|
|
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
|
|
* gcc.dg/dll-2.c: Revert revision 138893: Change "dg-message"
back to "dg-warning".
* gcc.dg/dll-3.c: Likewise.
From-SVN: r141209
|
|
From-SVN: r141205
|
|
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
|
|
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
|
|
From-SVN: r141185
|
|
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-16 Alexander Monakov <amonakov@ispras.ru>
PR target/37381
* gcc.c-torture/compile/pr37381.c: New test.
From-SVN: r141177
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-15 Jan Hubicka <jh@suse.cz>
* ira-emit.c (change_regs): Return false when replacing reg by
itself.
From-SVN: r141163
|
|
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
|
|
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-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
|
|
From-SVN: r141157
|
|
From-SVN: r141154
|
|
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
|
|
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-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 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
|
|
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
|
|
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-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
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r141128
|
|
From-SVN: r141126
|
|
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
|
|
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
|
|
/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-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
|
|
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
|
|
PR middle-end/37805
* opts.c (common_handle_option): Don't ICE on -fhelp=joined
and -fhelp=separate.
From-SVN: r141106
|