Commit 8c9801c3 authored by hjl's avatar hjl
Browse files

gcc/

2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33669
	* ra-conflict.c (record_one_conflict_between_regnos,
	set_conflicts_for_earlyclobber, global_conflicts): Improved
	logging.
	(global_conflicts): Removed incorrect check.

gcc/testsuite/

2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33669
	* gcc.c-torture/execute/pr33669.c: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129166 138bc75d-0d04-0410-961f-82ee72b054a4
parent 5ef01aa3
2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/33669
* ra-conflict.c (record_one_conflict_between_regnos,
set_conflicts_for_earlyclobber, global_conflicts): Improved
logging.
(global_conflicts): Removed incorrect check.
2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
 
PR tree-optimization/33615
......@@ -196,7 +196,7 @@ record_one_conflict_between_regnos (enum machine_mode mode1, int r1,
int allocno2 = reg_allocno[r2];
if (dump_file)
fprintf (dump_file, " rocbr adding %d<=>%d\n", r1, r2);
fprintf (dump_file, " rocbr adding %d<=>%d\n", r1, r2);
if (allocno1 >= 0 && allocno2 >= 0)
set_conflict (allocno1, allocno2);
......@@ -401,9 +401,6 @@ set_conflicts_for_earlyclobber (rtx insn)
recog_data.operand[use + 1]);
}
}
if (dump_file)
fprintf (dump_file, " finished early clobber conflicts.\n");
}
......@@ -983,8 +980,7 @@ global_conflicts (void)
set_renumbers_live (&renumbers_live, live_subregs, live_subregs_used,
allocnum, renumber);
}
else if (!sparseset_bit_p (allocnos_live, allocnum))
else
{
if (dump_file)
fprintf (dump_file, " dying pseudo\n");
......@@ -1071,6 +1067,8 @@ global_conflicts (void)
FIXME: We should consider either adding a new kind of
clobber, or adding a flag to the clobber distinguish
these two cases. */
if (dump_file && VEC_length (df_ref_t, clobbers))
fprintf (dump_file, " clobber conflicts\n");
for (k = VEC_length (df_ref_t, clobbers) - 1; k >= 0; k--)
{
struct df_ref *def = VEC_index (df_ref_t, clobbers, k);
......@@ -1132,6 +1130,8 @@ global_conflicts (void)
if (GET_CODE (PATTERN (insn)) == PARALLEL && multiple_sets (insn))
{
int j;
if (dump_file)
fprintf (dump_file, " multiple sets\n");
for (j = VEC_length (df_ref_t, dying_regs) - 1; j >= 0; j--)
{
int used_in_output = 0;
......
2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/33669
* gcc.c-torture/execute/pr33669.c: New.
2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
 
PR tree-optimization/33615
extern void abort (void);
typedef struct foo_t
{
unsigned int blksz;
unsigned int bf_cnt;
} foo_t;
#define _RNDUP(x, unit) ((((x) + (unit) - 1) / (unit)) * (unit))
#define _RNDDOWN(x, unit) ((x) - ((x)%(unit)))
long long
foo (foo_t *const pxp, long long offset, unsigned int extent)
{
long long blkoffset = _RNDDOWN(offset, (long long )pxp->blksz);
unsigned int diff = (unsigned int)(offset - blkoffset);
unsigned int blkextent = _RNDUP(diff + extent, pxp->blksz);
if (pxp->blksz < blkextent)
return -1LL;
if (pxp->bf_cnt > pxp->blksz)
pxp->bf_cnt = pxp->blksz;
return blkoffset;
}
int
main ()
{
foo_t x;
long long xx;
x.blksz = 8192;
x.bf_cnt = 0;
xx = foo (&x, 0, 4096);
if (xx != 0LL)
abort ();
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment