Partially revert:
2012-03-29 Richard Guenther <rguenther@suse.de> * rtl.h (extended_count): Remove. * combine.c (extended_count): Remove. From-SVN: r186077
This commit is contained in:
parent
36504e5f46
commit
5bd5034e24
3 changed files with 34 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
2012-04-02 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
Partially revert:
|
||||
2012-03-29 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* rtl.h (extended_count): Remove.
|
||||
* combine.c (extended_count): Remove.
|
||||
|
||||
2012-04-02 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/40942
|
||||
|
|
|
@ -9674,6 +9674,31 @@ reg_num_sign_bit_copies_for_combine (const_rtx x, enum machine_mode mode,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Return the number of "extended" bits there are in X, when interpreted
|
||||
as a quantity in MODE whose signedness is indicated by UNSIGNEDP. For
|
||||
unsigned quantities, this is the number of high-order zero bits.
|
||||
For signed quantities, this is the number of copies of the sign bit
|
||||
minus 1. In both case, this function returns the number of "spare"
|
||||
bits. For example, if two quantities for which this function returns
|
||||
at least 1 are added, the addition is known not to overflow.
|
||||
|
||||
This function will always return 0 unless called during combine, which
|
||||
implies that it must be called from a define_split. */
|
||||
|
||||
unsigned int
|
||||
extended_count (const_rtx x, enum machine_mode mode, int unsignedp)
|
||||
{
|
||||
if (nonzero_sign_valid == 0)
|
||||
return 0;
|
||||
|
||||
return (unsignedp
|
||||
? (HWI_COMPUTABLE_MODE_P (mode)
|
||||
? (unsigned int) (GET_MODE_PRECISION (mode) - 1
|
||||
- floor_log2 (nonzero_bits (x, mode)))
|
||||
: 0)
|
||||
: num_sign_bit_copies (x, mode) - 1);
|
||||
}
|
||||
|
||||
/* This function is called from `simplify_shift_const' to merge two
|
||||
outer operations. Specifically, we have already found that we need
|
||||
to perform operation *POP0 with constant *PCONST0 at the outermost
|
||||
|
|
|
@ -2455,6 +2455,7 @@ extern bool validate_subreg (enum machine_mode, enum machine_mode,
|
|||
const_rtx, unsigned int);
|
||||
|
||||
/* In combine.c */
|
||||
extern unsigned int extended_count (const_rtx, enum machine_mode, int);
|
||||
extern rtx remove_death (unsigned int, rtx);
|
||||
extern void dump_combine_stats (FILE *);
|
||||
extern void dump_combine_total_stats (FILE *);
|
||||
|
|
Loading…
Add table
Reference in a new issue