[LLVMdev] anti-dependency breaking and mask/shift dependencies

Hal Finkel hfinkel at anl.gov
Mon Jun 11 09:07:10 PDT 2012


On Mon, 11 Jun 2012 08:56:21 -0700
Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:

> 
> On Jun 11, 2012, at 8:07 AM, Hal Finkel wrote:
> 
> > Also, I think the following might work well: If we add a special
> > kind of register dependency called a 'remembered' register. This is
> > not a real dependency meaning that that the instruction does not
> > actually read or write to the register, but it means that if the
> > register allocator (or anything else) swaps the referenced register
> > for another one (or a new virtual register), then the 'remembered'
> > register needs to be swapped as well. Using this I can create a
> > late-expanded pseuso which represents the necessary mask/shift
> > operation. This operation has real read/write dependencies on the
> > GPRs being used, but also needs to 'remember' from which cr the
> > input originally came. On the other hand, this might create a bunch
> > of dead-register-dependency special cases in CodeGen which would
> > not be worth the effort. What do you think?
> 
> I am not sure I follow completely, but it sounds like it would be
> quite fragile?

I think you're right, I retract my suggestion.

Thanks again,
Hal

> 
> /jakob
> 



-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list