Eric Christopher
cafe096b40
Merge from rewrite branch.
...
From-SVN: r66318
2003-05-01 02:33:13 +00:00
J"orn Rennecke
7f0ea82ec0
Re-apply this patch:
...
2002-05-16 Dale Johannesen <dalej@apple.com>
* combine.c (cant_combine_insn_p): Reenable combinations
involving hard regs unless CLASS_LIKELY_SPILLED_P.
From-SVN: r65689
2003-04-16 18:41:10 +01:00
Franz Sirl
7d4444ea03
combine.c (merge_outer_ops): Fix typo.
...
2003-04-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* combine.c (merge_outer_ops): Fix typo.
* varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
From-SVN: r65136
2003-04-01 18:33:51 +00:00
Eric Christopher
73a39fc4f1
combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
...
2003-03-31 Eric Christopher <echristo@redhat.com>
* combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
(combinable_i3pat): Remove call to expand_field_assignment and
#if 0'd code.
From-SVN: r65118
2003-03-31 22:16:54 +00:00
Eric Botcazou
02484af985
re PR target/10072 ([Sparc] internal compiler error: in trunc_int_for_mode, at explow.c:54)
...
PR target/10072
* combine.c (simplify_if_then_else): Check that the mode
has MODE_INT class before applying the (OP Z (mult COND C2))
transformation.
From-SVN: r64785
2003-03-24 11:29:11 +00:00
Alan Modra
70e1b8fc74
* combine.c (simplify_comparison <AND>): Use gen_int_mode. Tidy.
...
From-SVN: r64703
2003-03-22 18:31:02 +10:30
Kazu Hirata
c5c15353f3
* combine.c (make_field_assignment): Fix a warning.
...
From-SVN: r64680
2003-03-21 21:42:05 +00:00
Kazu Hirata
6e814b8d35
combine.c (make_field_assignment): Remove unnecessary AND when storing into zero_extract.
...
* combine.c (make_field_assignment): Remove unnecessary AND
when storing into zero_extract.
From-SVN: r64674
2003-03-21 18:03:02 +00:00
Alan Modra
6a04f4e05e
re PR target/10073 (powerpc cannot split insn while building rscheme)
...
PR target/10073
* combine.c (force_to_mode <NOT>): Use gen_int_mode.
From-SVN: r64564
2003-03-19 11:58:12 +10:30
Kazu Hirata
3dc575ffdb
calls.c: Fix comment formatting.
...
* calls.c: Fix comment formatting.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* combine.c: Likewise.
* dwarf2out.c: Likewise.
* ggc-common.c: Likewise.
* langhooks.c: Likewise.
* loop-unroll.c: Likewise.
* loop.c: Likewise.
* ra-build.c: Likewise.
* sbitmap.c: Likewise.
* toplev.c: Likewise.
From-SVN: r63966
2003-03-08 01:38:27 +00:00
Jan Hubicka
10a3fdd926
combine.c (gen_lowpart_for_combine): Update handling of subregs_of_mode
...
* combine.c (gen_lowpart_for_combine): Update handling of
subregs_of_mode
* flow.c (life_analysis, mark_used_regs): Likewise.
* regclass.c (subregs_of_mode): Turn into single bitmap.
(cannot_change-mode_set_regs, invalid_mode_change_p): Update
dealing with subregs_of_mode
* regs.h (subregs_of_mode): Update prototype.
From-SVN: r63552
2003-02-28 10:11:47 +00:00
James E Wilson
678e68fcfd
Patch for PR 9255
...
Patch for PR 9255
* combine.c (simplify_comparison): Require integral mode when
permuting SUBREG with AND.
From-SVN: r63514
2003-02-27 09:46:35 -08:00
Roger Sayle
8beccec86d
combine.c (combine_simplify_rtx, [...]): Use CC0_P.
...
* combine.c (combine_simplify_rtx, simplfy_comparison): Use CC0_P.
* cse.c (invalidate_skipped_set): Likewise.
* integrate.c (subst_constants): Likewise.
* jump.c (reversed_comparison_code_parts): Likewise.
* loop.c (canonicalize_condition): Likewise.
* simplify-rtx.c (simplify_relational_operation): Likewise.
From-SVN: r63446
2003-02-26 03:05:40 +00:00
Jan Hubicka
2d21f7d6b3
* combine.c (simplify_shift_const): Fix previous patch.
...
From-SVN: r63380
2003-02-24 21:10:39 +00:00
Jan Hubicka
b9422b69c4
toplev.c (flag_sched2_use_superblocks, [...]): New global variables.
...
* toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New global variables.
(lang_independent_options): Add -fsched2-use-superblocks -fsced2-use-traces.
(rest_of_compilation): Deal with it.
* invoke.texi (-fsched2-use-traces, fsched2-use-superblocks): Declare.
* flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces): Declare.
* rtl.h (reg_to_stack): Update prototype.
* reg-stack.c (reg_to_stack): Return when something has changed;
update liveness when executing after superblock scheduling.
* combine.c (simplify_shift_const): Simplify few special cases
into constants.
From-SVN: r63183
2003-02-20 20:56:53 +00:00
Josef Zlomek
8fa0831669
combine.c (distribute_notes): Kill REG_EXEC_COUNT.
...
* combine.c (distribute_notes): Kill REG_EXEC_COUNT.
* rtl.c (reg_note_name): Likewise.
* rtl.h (enum reg_note): Likewise.
* doc/invoke.texi: Likewise.
* doc/rtl.texi: Likewise.
From-SVN: r63157
2003-02-20 08:54:48 +00:00
Adam Nemet
8fd737543f
re PR rtl-optimization/2391 (Exponential compilation time explosion in combine)
...
PR opt/2391
* combine.c: Fix spelling in comment.
(cached_nonzero_bits): New function.
(cached_num_sign_bit_copies): New function.
(nonzero_bits_with_known): New macro.
(num_sign_bit_copies_with_known): New macro.
(nonzero_bits1): Rename from nonzero_bits. Add three new
arguments. Change calls from nonzero_bits to
nonzero_bits_with_known.
(num_sign_bit_copies1): Rename from num_sign_bit_copies. Add
three new arguments. Change calls from num_sign_bit_copies to
num_sign_bit_copies_with_known.
(nonzero_bits): New macro.
(num_sign_bit_copies): New macro.
(update_table_tick): Don't traverse identical subexpression more
than once.
(get_last_value_validate): Likewise.
From-SVN: r62893
2003-02-14 07:35:44 +00:00
Jan Hubicka
cb119f8263
combine.c (combine_simplify_rtx): Fix folding of nested float_truncates.
...
* combine.c (combine_simplify_rtx): Fix folding of
nested float_truncates.
From-SVN: r62702
2003-02-11 18:05:55 +00:00
Jan Hubicka
949824fe34
combine.c (combine_simplify_rtx): Simplify using (float_truncate (float x)) is (float x) (float_extend...
...
* combine.c (combine_simplify_rtx): Simplify using
(float_truncate (float x)) is (float x)
(float_extend (float_extend x)) is (float_extend x).
From-SVN: r62624
2003-02-10 10:56:05 +00:00
Richard Henderson
d116433079
* combine.c (nonzero_bits): Fix double break.
...
From-SVN: r62495
2003-02-06 11:26:42 -08:00
Richard Henderson
7dba8395e2
defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
...
* defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
(CTZ_DEFINED_VALUE_AT_ZERO): New.
* doc/rtl.texi, doc/tm.texi: Document them.
* combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
of the value at zero properly.
* fold-const.c (tree_expr_nonnegative_p): Likewise.
* simplify-rtx.c (simplify_unary_operation): Likewise.
* config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
(CTZ_DEFINED_VALUE_AT_ZERO): New.
* config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
(TARGET_EXPAND_BUILTIN): Remove.
(def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
(enum arm_builtins): Remove.
* config/arm/arm.md (UNSPEC_CLZ): Remove.
(clzsi2): Rename from clz; use clz instead of unspec.
(ctzsi2): New.
* config/arm/arm-protos.h: Update.
From-SVN: r62453
2003-02-05 14:37:54 -08:00
Richard Henderson
2928cd7aac
[multiple changes]
...
2003-02-01 Richard Henderson <rth@redhat.com>
* optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
__popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
return type to Wtype.
* libgcc-std.ver (GCC_3.4): Fix inheritance.
* config/i386/i386.md (ffssi2): Use nonimmediate_operand for
expander input constraint.
2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
* optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
OTI_parity.
(clz_optab, ctz_optab, popcount_optab, parity_optab): New.
* optabs.c (widen_clz, expand_parity): New.
(expand_unop): Handle clz and parity. Hardcode SImode as outmode
for libcalls to clz, ctz, popcount, and parity.
(init_optabs): Init clz_optab, ctz_optab, popcount_optab and
parity_optab, and set up libfunc handlers.
* libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
__popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
__popcount_tab): New.
* libgcc2.h: Declare them.
* libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
* genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
and parity_optab.
* builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
* builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
BUILT_IN_PARITYLL): New.
* builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
and add optab argument.
(expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
* tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
* expr.c (expand_expr): Handle them.
* fold-const.c (tree_expr_nonnegative_p): Likewise.
* rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
* reload1.c (eliminate_regs): Handle them.
(elimination_effects): Likewise.
* function.c (instantiate_virtual_regs_1): Likewise
* genattrtab.c (check_attr_value): Likewise.
* simplify-rtx.c (simplify_unary_operation): Likewise.
* c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
* combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
(nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
* config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
* config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
__builtin_arm_clz.
* Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
* mklibgcc.in (lib2funcs): ...here and merge. Add new members.
* doc/extend.texi (Other Builtins): Add new builtins.
* doc/md.texi (Standard Names): Add new patterns.
From-SVN: r62252
2003-02-01 11:00:02 -08:00
Jan Hubicka
434c87d422
* combine.c (combine_simplify_rtx): Use reversed_comparison_code_parts.
...
From-SVN: r62246
2003-02-01 13:16:29 +00:00
Jan Hubicka
b0c42aed31
loop.c (emit_prefetch_instructions): Do conversion at right place in RTL chain.
...
* loop.c (emit_prefetch_instructions): Do conversion at right place in
RTL chain.
* combine.c (simplify_set): Reverse order of ragumetns to
REG_CANNOT_CHANGE_MODE_P
* df.c (df_def_record_1): Likewise.
* recog.c (register_operand): Likewise.
* simplify-rtx.c (simplify_subreg): Likewise.
* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
CANNOT_CHANGE_MODE_CLASS.
* regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
Likewise.
* reload.c (push_reload): Likewise.
* alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* mips-protos.h (mips_cannot_change_mode_class): Update prototype.
* mips.c (mips_cannot_change_mode_class): Update.
* pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* sh-protos.h (sh_cannot_change_mode_class): Update prototype.
* sh.c (sh_cannot_change_mode_class): Update.
* i386.h (CANNOT_CHANGE_MODE_CLASS): New.
* tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
From-SVN: r62212
2003-01-31 23:34:17 +00:00
Richard Sandiford
6d09ef27d4
* combine.c (nonzero_bits): Fix check for negative divide operands.
...
From-SVN: r62029
2003-01-28 22:15:50 +00:00
Andreas Schwab
43196589eb
combine.c (force_to_mode): Add cast to fix warning when STORE_FLAG_VALUE is negative.
...
* combine.c (force_to_mode): Add cast to fix warning when
STORE_FLAG_VALUE is negative.
From-SVN: r61961
2003-01-28 11:02:28 +00:00
Kazu Hirata
e869aa3936
* combine.c: Fix formatting.
...
From-SVN: r61862
2003-01-26 21:53:22 +00:00
Kazu Hirata
ad487c3816
combine.c (simplify_comparison, case AND): Remove a redundant test.
...
* combine.c (simplify_comparison, case AND): Remove a redundant
test.
From-SVN: r61787
2003-01-25 17:45:16 +00:00
Kazu Hirata
32dd366d5e
basic-block.h: Fix comment formatting.
...
* basic-block.h: Fix comment formatting.
* calls.c: Likewise.
* combine.c: Likewise.
* convert.c: Likewise.
* gcov.c: Likewise.
* haifa-sched.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* profile.c: Likewise.
* system.h: Likewise.
From-SVN: r61478
2003-01-18 22:32:06 +00:00
Richard Henderson
ab5ecb014b
combine.c (make_compound_operation): Use SCALAR_INT_MODE_P, not INTEGRAL_MODE_P when widening extensions.
...
* combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
not INTEGRAL_MODE_P when widening extensions.
From-SVN: r61178
2003-01-10 15:36:17 -08:00
Zack Weinberg
4977bab6ed
Merge basic-improvements-branch to trunk
...
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Geoffrey Keating
16823694d5
Index: gcc/ChangeLog
...
2002-12-02 Geoffrey Keating <geoffk@apple.com>
* combine.c (combine_simplify_rtx): Add new canonicalizations.
* doc/md.texi (Insn Canonicalizations): Document new
canonicalizations for multiply/add combinations.
* config/rs6000/rs6000.md: Add and modify floating add/multiply
patterns to ensure they're used whenever they can be.
Index: gcc/testsuite/ChangeLog
2002-12-02 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/ppc-fmadd-1.c: New file.
* gcc.dg/ppc-fmadd-2.c: New file.
* gcc.dg/ppc-fmadd-3.c: New file.
From-SVN: r59841
2002-12-05 01:05:13 +00:00
Jakub Jelinek
bc02f8d3f7
combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask (not just mask) are set in C.
...
* combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask
(not just mask) are set in C.
* gcc.c-torture/execute/20021118-3.c: New test.
From-SVN: r59295
2002-11-20 10:43:20 +01:00
Aldy Hernandez
cff9f8d509
hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.
...
2002-11-04 Aldy Hernandez <aldyh@redhat.com>
* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.
* config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove.
(CLASS_CANNOT_CHANGE_MODE): Remove.
(CANNOT_CHANGE_MODE_CLASS): New.
* config/alpha/alpha.h: Same.
* config/ia64/ia64.h: Same.
* config/mips/mips.h: Same.
* config/s390/s390.h: Same.
* config/sh/sh.h: Same.
* config/pa/pa64-regs.h: Same.
* config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype.
* config/sh/sh.c (sh_cannot_change_mode_class): New.
* config/mips/mips-protos.h (mips_cannot_change_mode_class): Add
prototype.
* config/mips/mips.c (mips_cannot_change_mode_class): New.
* doc/tm.texi (Register Classes): Remove
CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P.
Document CANNOT_CHANGE_MODE_CLASS.
* reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS.
(push_reload): Same.
* simplify-rtx.c (simplify_subreg): Same.
* reload1.c (choose_reload_regs): Same.
* recog.c (register_operand): Same.
* regrename.c (mode_change_ok): Change to use new
CANNOT_CHANGE_MODE_CLASS infrastructure.
* regclass.c (cannot_change_mode_set_regs): New.
Declare subregs_of_mode.
(regclass): Use subregs_of_mode.
Remove references to reg_changes_mode.
(init_reg_sets_1): Remove class_can_change_mode and
reg_changes_mode code.
(invalid_mode_change_p): New.
(dump_regclass): Use invalid_mode_change_p instead of
class_can_change_mode.
(regclass): Same.
(record_operand_costs): Do not set reg_changes_mode.
* local-alloc.c (struct qty): Remove changes_mode field.
(alloc_qty): Remove changes_mode initialization.
(update_qty_class): Remove set of changes_mode.
(find_free_reg): Use subregs_of_mode.
* global.c (find_reg): Use subregs_of_mode info.
* rtl.h (cannot_change_mode_set_regs): New prototype.
(invalid_mode_change_p): Same.
(REG_CANNOT_CHANGE_MODE_P): New macro.
* flow.c (mark_used_regs): Calculate subregs_of_mode. Remove
REG_CHANGES_MODE.
(life_analysis): Clear subregs_of_mode.
* combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P.
Remove use of CLASS_CANNOT_CHANGE_MODE.
(simplify_set): Same.
(gen_lowpart_for_combine): Calculate subregs_of_mode. Remove
REG_CHANGES_MODE.
* regs.h: Add extern for subregs_of_mode;
Include hard-reg-set and basic-block.
(REG_CHANGES_MODE): Delete.
From-SVN: r58794
2002-11-04 16:58:39 +00:00
Kazu Hirata
3eae4643be
combine.c: Fix comment formatting.
...
* combine.c: Fix comment formatting.
* loop.c: Likewise.
* real.c: Likewise.
* regclass.c: Likewise.
* regmove.c: Likewise.
* regrename.c: Likewise.
* reg-stack.c: Likewise.
* reload1.c: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* unroll.c: Likewise.
From-SVN: r58583
2002-10-27 14:47:55 +00:00
Roger Sayle
dbf4f1a2ba
* combine.c (simplify_set): Treat MODE_CC registers like cc0.
...
From-SVN: r58148
2002-10-15 05:01:07 +00:00
Richard Henderson
ccf7aef428
combine.c (force_to_mode): Handle FLOAT_MODE destinations for CONST_INT.
...
* combine.c (force_to_mode): Handle FLOAT_MODE destinations
for CONST_INT.
From-SVN: r57634
2002-09-29 20:26:47 -07:00
Kazu Hirata
991b659243
builtins.def: Fix comment formatting.
...
* builtins.def: Fix comment formatting.
* c-common.def: Likewise.
* cfgcleanup.c: Likewise.
* combine.c: Likewise.
* gengtype.c: Likewise.
* params.def: Likewise.
* predict.def: Likewise.
* rtl.def: Likewise.
* stab.def: Likewise.
* stor-layout.c: Likewise.
* tree.def: Likewise.
* config/darwin.c: Likewise.
* config/darwin.h: Likewise.
* config/dbxcoff.h: Likewise.
* config/elfos.h: Likewise.
* config/fp-bit.c: Likewise.
* config/freebsd-spec.h: Likewise.
* config/interix.h: Likewise.
* config/libgloss.h: Likewise.
* config/linux-aout.h: Likewise.
* config/linux.h: Likewise.
* config/lynx-ng.h: Likewise.
* config/lynx.h: Likewise.
* config/netbsd-aout.h: Likewise.
* config/netbsd.h: Likewise.
* config/netware.h: Likewise.
* config/psos.h: Likewise.
* config/ptx4.h: Likewise.
From-SVN: r57624
2002-09-29 13:16:44 +00:00
Igor Shevlyakov
855c3a2e32
combine.c (simplify_set): Don't call to force_to_mode if size of integer type is larger than...
...
* combine.c (simplify_set): Don't call to force_to_mode if size
of integer type is larger than HOST_BITS_PER_WIDE_INT.
From-SVN: r57549
2002-09-26 14:15:26 -07:00
Kazu Hirata
da7d830409
ChangeLog: Follow spelling conventions.
...
* ChangeLog: Follow spelling conventions.
* ChangeLog.0: Likewise.
* ChangeLog.1: Likewise.
* ChangeLog.2: Likewise.
* ChangeLog.3: Likewise.
* ChangeLog.4: Likewise.
* ChangeLog.5: Likewise.
* ChangeLog.6: Likewise.
* FSFChangeLog.10: Likewise.
* FSFChangeLog.11: Likewise.
* alias.c: Likewise.
* basic-block.h: Likewise.
* c-aux-info.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-decl.c: Likewise.
* c-format.c: Likewise.
* c-semantics.c: Likewise.
* c-typeck.c: Likewise.
* calls.c: Likewise.
* cfganal.c: Likewise.
* cfgloop.c: Likewise.
* collect2.c: Likewise.
* combine.c: Likewise.
* conflict.c: Likewise.
* cppexp.c: Likewise.
* cppfiles.c: Likewise.
* cpphash.h: Likewise.
* cppinit.c: Likewise.
* cpplex.c: Likewise.
* cpplib.c: Likewise.
* cpplib.h: Likewise.
* cppmacro.c: Likewise.
* cse.c: Likewise.
From-SVN: r57398
2002-09-22 02:03:17 +00:00
Jim Wilson
a9b2f05974
Fix v850 ICE.
...
* combine.c (try_combine): When split an instruction pair, where the
first has a sign_extend src, verify that the src and dest modes match.
From-SVN: r57371
2002-09-20 14:42:25 -07:00
Jim Wilson
ff0765200c
fix subreg optimization bug introduced 2002-05-25
...
fix subreg optimization bug introduced 2002-05-25
* combine.c (simplify_set): When optimizing a subreg src with a
cc0 dest, use GET_MODE (src) for mask instead of inner_mode.
From-SVN: r57323
2002-09-19 16:39:34 -07:00
Dale Johannesen
307f767b38
Remove creation of invalid subreg. PR 7705, 7339, 7720.
...
From-SVN: r57315
2002-09-19 18:54:56 +00:00
Roger Sayle
f40f4c8ed1
combine.c (try_combine): Handle the case that undobuf.other_insn has been turned into a return or...
...
* combine.c (try_combine): Handle the case that undobuf.other_insn
has been turned into a return or unconditional jump, by inserting
a BARRIER if necessary.
(simplify_set): Test if a condition code setter has a constant
comparison at compile time, if so convert this insn to a no-op move
and update/simplify the condition code user (undobuf.other_insn).
From-SVN: r56955
2002-09-08 18:07:54 +00:00
Igor Shevlyakov
ad9df12ff5
combine.c (simplify_shift_const): Calculate rotate count correctly for vector operands.
...
* combine.c (simplify_shift_const): Calculate rotate count
correctly for vector operands.
From-SVN: r56928
2002-09-07 20:34:16 -07:00
J"orn Rennecke
b10f218708
combine.c (make_compound_operation): Don't generate zero / sign extensions in floating point modes.
...
* combine.c (make_compound_operation): Don't generate zero / sign
extensions in floating point modes.
From-SVN: r56804
2002-09-04 18:49:58 +01:00
Geoffrey Keating
71012d9720
machmode.h (SCALAR_INT_MODE_P): New macro to test for scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
...
* machmode.h (SCALAR_INT_MODE_P): New macro to test for
scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
* explow.c (trunc_int_for_mode): Abort when the mode is not
a scaler integer mode.
* combine.c (expand_compound_operation): Don't expand Vector
or Complex modes into shifts.
(expand_field_assignment): Don't do bitwise arithmatic and
shifts on Vector or Complex modes.
(simplify_comparison): Don't call trunc_int_for_mode
for VOIDmode.
* recog.c (general_operand): Likewise.
(immediate_operand): Likewise.
(nonmemory_operand): Likewise.
Co-Authored-By: Steve Ellcey <sje@cup.hp.com>
From-SVN: r56443
2002-08-19 18:18:12 +00:00
Toon Moene
73e42cf342
c-common.c (cb_register_builtins): Set __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only is given, and to 0 otherwise.
...
2002-08-01 Toon Moene <toon@moene.indiv.nluug.nl>
* c-common.c (cb_register_builtins): Set
__FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
is given, and to 0 otherwise.
* combine.c (simplify_if_then_else): HONOR_NANS
implies FLOAT_MODE_P.
From-SVN: r55932
2002-08-01 09:08:38 +00:00
Toon Moene
2e8f2e8f7d
flags.h: Declare flag_finite_math_only.
...
2002-07-30 Toon Moene <toon@moene.indiv.nluug.nl>
* flags.h: Declare flag_finite_math_only.
Use it in definition of HONOR_NANS and
HONOR_INFINITIES.
* c-common.c (cb_register_builtins): Emit
__FINITE_MATH_ONLY__ when flag_finite_math_only
is set.
* combine.c (simplify_if_then_else): If
flag_finite_math_only is set, a == b has a
definite value.
* toplev.c: Initialize flag_finite_math_only.
(set_flags_fast_math): Set it on -ffast-math.
(flag_fast_math_set_p): Test it.
doc:
* invoke.texi: Document -ffinite-math-only.
f:
* com.c (ffe_init_options): Set
flag_finite_math_only.
* invoke.texi: Document -fno-finite-math-only.
From-SVN: r55887
2002-07-30 22:23:26 +00:00
J"orn Rennecke
25c2594701
combine.c (try_combine): When converting a paradoxical subreg to an extension...
...
* combine.c (try_combine): When converting a paradoxical subreg
to an extension, take LOAD_EXTEND_OP into account.
From-SVN: r55404
2002-07-11 22:03:51 +01:00