Commit Graph

666 Commits

Author SHA1 Message Date
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