Kazu Hirata
938d968ed3
alias.c: Fix comment formatting.
...
* alias.c: Fix comment formatting.
* c-common.c: Likewise.
* c-decl.c: Likewise.
* c-opts.c: Likewise.
* combine.c: Likewise.
* cpplib.c: Likewise.
* diagnostic.c: Likewise.
* dojump.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* ggc-page.c: Likewise.
* jump.c: Likewise.
* loop.c: Likewise.
* mips-tfile.c: Likewise.
* recog.c: Likewise.
* regclass.c: Likewise.
* regmove.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
From-SVN: r69689
2003-07-22 23:15:30 +00:00
Kazu Hirata
87d9741e4e
combine.c (if_then_else_cond): Simplify the comparison of rtx against -1, 0, and 1.
...
* combine.c (if_then_else_cond): Simplify the comparison of
rtx against -1, 0, and 1.
* loop.c (check_dbra_loop): Likewise.
* optabs.c (emit_conditional_move): Likewise.
(emit_conditional_add): Likewise.
* config/i386/i386.md (*movsi_or): Likewise.
(*movdi_or_rex6): Likewise.
From-SVN: r69658
2003-07-22 00:36:52 +00:00
Kaveh R. Ghazi
703ad42b4b
alias.c [...]: Remove unnecessary casts.
...
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
genemit.c genextract.c genoutput.c genrecog.c gensupport.c
ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
postreload.c prefix.c print-tree.c protoize.c ra-build.c
ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
regmove.c regrename.c reload.c reload1.c reorg.c resource.c
sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
casts.
From-SVN: r69587
2003-07-19 14:47:15 +00:00
Kazu Hirata
e5686da761
combine.c (simplify_comparison): Don't share rtx when converting (ne (and (not X) 1) 0) to (eq (and X 1) 0).
...
* combine.c (simplify_comparison): Don't share rtx when converting
(ne (and (not X) 1) 0) to (eq (and X 1) 0).
From-SVN: r69571
2003-07-18 21:53:04 +00:00
Alexandre Oliva
0595d388a4
combine.c (combinable_i3pat): Don't forbid occurrences of i2dest or i1dest in inner_dest if inner_dest is a mem.
...
* combine.c (combinable_i3pat): Don't forbid occurrences of
i2dest or i1dest in inner_dest if inner_dest is a mem.
From-SVN: r69566
2003-07-18 18:23:30 +00:00
Roger Sayle
cc8c96fd6d
combine.c (subst): Also handle (subreg (const_double ...)) case if created by a substitution...
...
* combine.c (subst): Also handle (subreg (const_double ...)) case
if created by a substitution, by using the original inner mode.
From-SVN: r69476
2003-07-16 19:36:38 +00:00
Kazu Hirata
34ed3bb00e
combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) to (eq (and X 1) 0).
...
* combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0)
to (eq (and X 1) 0).
From-SVN: r69300
2003-07-13 19:03:28 +00:00
Denis Chertykov
9db367b45c
combine.c (gen_binary): Handle the CLOBBER rtx and don't build a binary operation with it.
...
* combine.c (gen_binary): Handle the CLOBBER rtx and
don't build a binary operation with it.
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
From-SVN: r69199
2003-07-11 00:28:09 +04:00
Kazu Hirata
4f649bc1c5
* combine.c (nonzero_bits1): Fix a warning.
...
From-SVN: r68983
2003-07-05 21:10:08 +00:00
Kazu Hirata
e0bb17a83f
basic-block.h: Fix comment typos.
...
* basic-block.h: Fix comment typos.
* bb-reorder.c: Likewise.
* c-format.c: Likewise.
* cfgcleanup.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.h: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* convert.c: Likewise.
* dbxout.c: Likewise.
* df.c: Likewise.
* df.h: Likewise.
* diagnostic.c: Likewise.
* dwarf2out.c: Likewise.
* et-forest.h: Likewise.
* flow.c: Likewise.
* fold-const.c: Likewise.
* function.h: Likewise.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genautomata.c: Likewise.
* ggc-common.c: Likewise.
* ggc-page.c: Likewise.
* loop-unroll.c: Likewise.
* loop-unswitch.c: Likewise.
* loop.c: Likewise.
* mips-tfile.c: Likewise.
* optabs.c: Likewise.
* ra-build.c: Likewise.
* ra-colorize.c: Likewise.
* ra-rewrite.c: Likewise.
* ra.h: Likewise.
* regmove.c: Likewise.
* reload.c: Likewise.
* rtlanal.c: Likewise.
* sched-ebb.c: Likewise.
* sched-int.h: Likewise.
* sched-vis.c: Likewise.
* sreal.c: Likewise.
* ssa-ccp.c: Likewise.
* ssa.c: Likewise.
* toplev.c: Likewise.
* tree-inline.c: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
From-SVN: r68770
2003-07-01 12:18:01 +00:00
Kazu Hirata
6001794def
combine.c (distribute_notes): Don't bother REG_WAS_0.
...
* combine.c (distribute_notes): Don't bother REG_WAS_0.
* cse.c (cse_insn): Likewise.
* final.c (final_scan_insn): Likewise.
* jump.c (duplicate_loop_exit_test): Likewise.
* rtl.c (reg_note_name): Remove REG_WAS_0.
* rtl.h (REG_WAS_0): Remove.
* unroll.c (final_reg_note_copy): Don't bother REG_WAS_0.
* config/avr/avr.c (output_movqi): Don't use reg_was_0.
(output_movhi): Likewise.
(output_movsisf): Likewise.
(reg_was_0): Remove.
* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't use
REG_WAS_0.
(m68hc11_gen_movqi): Likewise.
* config/vax/vax-protos.h: Remove the prototype for
reg_was_0_p.
* config/vax/vax.c (follows_p): Remove.
(reg_was_0_p): Likewise.
* config/vax/vax.md (movsi): Don't use reg_was_0_p.
(movhi): Likewise.
(movqi): Likewise.
* doc/rtl.texi (REG_WAS_0): Remove.
From-SVN: r68753
2003-07-01 01:15:07 +00:00
Kazu Hirata
fa9ea25574
combine.c (force_to_mode): Replace the equality comparison of INTVALs with a pointer equality comparison.
...
* combine.c (force_to_mode): Replace the equality comparison
of INTVALs with a pointer equality comparison.
(simplify_comparison): Likewise.
From-SVN: r68603
2003-06-27 19:42:24 +00:00
James E Wilson
54c2fc721c
re PR bootstrap/10983 ([SPARC64] ICE in verify_wide_reg, at flow.c:551, while compiling libjava)
...
PR bootstrap/10983
* combine.c (make_extraction): Use gen_lowpart_for_combine
when extracting from a REG and not in the destination of a SET.
Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr>
From-SVN: r67916
2003-06-13 22:13:07 +00:00
Jan Hubicka
0435312e38
cfglayout.c (insn_scope): New static function
...
* cfglayout.c (insn_scope): New static function
(block_locators_*, line_locators*, file_locators*): New static varrays.
(scope_to_insns_initialize): Use them.
(insn_line, insn_file): New functions.
(scope_to_insns_finalize): Use insn_scope.
(prologue_locator, epilogue_locator): New global variables.
* emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
make_call_insn_raw, emit_copy_of_insn_after): Use locators.
(emit_insn_after_scope, emit_insn_before_scope
emit_jump_insn_after_scope, emit_jump_insn_before_scope
emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
(emit_insn_after_setloc, emit_insn_before_setloc
emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
use locators.
* final.c (notice_source_line): Use locators.
(final_start_function): Set initial source file and line.
(final_scan_insn): Use locators.
* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
noce_process_if_block, find_cond_trap): Likewise.
* integrate.c (copy_insn_list): Likewise.
* jump.c (duplicate_loop_exit_test): LIkewise.
* print-rtl.c (print_rtx): Print locators.
* recog.c (peephole2_optimize): Likewise.
* rtl.h (INSN_SCOPE): Remove.
(emit_insn_after_scope, emit_insn_before_scope
emit_jump_insn_after_scope, emit_jump_insn_before_scope
emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
(emit_insn_after_setloc, emit_insn_before_setloc
emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
(insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
* unroll.c (copy_loop_body): Use locators.
* function.c (set_insn_locators): New function.
(thread_prologue_and_epilogue_insns): Set the locators accordingly.
From-SVN: r67637
2003-06-08 19:35:54 +00:00
Andreas Jaeger
79a490a95b
predict.h: Convert to ISO C90 prototypes.
...
* predict.h: Convert to ISO C90 prototypes.
* predict.c: Likewise.
* tree-dump.h: Likewise.
* tree-dump.c: Likewise.
* diagnostic.h: Likewise.
* diagnostic.c: Likewise.
* combine.c: Likewise.
* rtl.h: Convert prototypes of combine.c to ISO C90.
From-SVN: r67626
2003-06-08 16:21:54 +02:00
Jan Hubicka
83588a9d9d
combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8)) is REG for nonzero_bits (REG) == 8.
...
* combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
is REG for nonzero_bits (REG) == 8.
From-SVN: r67488
2003-06-05 13:00:14 +00:00
Kazu Hirata
8d6b2775ec
combine.c (simplify_set): Don't move a subreg in SET_SRC to SET_DEST if...
...
* combine.c (simplify_set): Don't move a subreg in SET_SRC to
SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
From-SVN: r67388
2003-06-03 17:10:48 +00:00
Eric Christopher
3dcd7d4595
combine.c (expand_compound_operation): Make sure that zero_extend operation is profitable.
...
2003-05-15 Eric Christopher <echristo@redhat.com>
* combine.c (expand_compound_operation): Make sure
that zero_extend operation is profitable.
From-SVN: r66853
2003-05-16 02:05:29 +00:00
Eric Christopher
72531479fc
combine.c: Fix header comments.
...
2003-05-14 Eric Christopher <echristo@redhat.com>
* combine.c: Fix header comments.
(distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
to all calls and prototype.
From-SVN: r66813
2003-05-15 00:07:02 +00:00
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