[llvm-commits] RFC: Merge branches/R600 into TOT for 3.2 release

Tom Stellard tom at stellard.net
Tue Oct 30 11:35:17 PDT 2012


On Mon, Oct 29, 2012 at 10:23:59PM -0700, Chris Lattner wrote:
> 
> On Oct 23, 2012, at 6:27 AM, Tom Stellard <tom at stellard.net> wrote:
> 
> > Hi,
> > 
> > I would like to be able to merge the R600/SI backend (currently developed
> > in branches/R600) into TOT prior to the 3.2 release.  I would appreciate
> > any of the LLVM developers taking a look at the code and advising me on
> > what I need to do to make this happen.
> 

Hi Chris,

> Hi Tom,
> 
> Time is running short, but this would be great.  The best place to start is to begin decomposing the mega-patch into individual pieces that makes sense.  Do you have changes outside Target/AMDGPU?  Those would be the be place to start.

Not counting test cases, new intrinsics, and configuration files,
there are no changes outside of Target/AMDGPU.  I always submit patches
for changes I make outside of Target/AMDGPU.  Isn't that how Open Source
is supposed to work? ;)

What's the best way to break up the patch?  In the past I have divided it up
into 4 patches:

1. Core Target files (*TargetMachine, *InstInfo, etc.)
2. Target specific passes
3. .td files
4. Configuration / Intrinsic additions

Would something like this work?

> 
> Also, it would make more sense to name the directory lib/Target/R600 than AMDGPU (R600 isn't AMD's only GPU).  :)
>

The naming schemes used for GPUs is really confusing, so I'll try to
explain:

The code in lib/Target/AMDGPU supports two different GPU architectures.
The first is the R600 architecture (in the Open Source drivers we name
the architecture after the first GPU family that uses it).  The
R600 architecture covers 4 families of GPU: R600, R700, Evergreen,
Cayman.

The second is the Graphics Core Next architecture, which we call
Southern Islands, this covers the Southern Islands family and possibly
future GPU families too.

While these two architectures are completely different when it comes to
registers and ISA, there are some concepts that they share, so it is
useful to be able to share code between them.  This is why they are both
in the AMDGPU directory.

If you want I can split these into two separate directories R600, and
SI, but then I would need to come up with a some other way to share code
between them.

Thanks,
Tom



More information about the llvm-commits mailing list