Moving this thread to llvmdev.
>> 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?
Well yeah, but sometimes you still have to ask :). Can the intrinsics be pulled into the target directory ala Targets/MBlaze/MBlazeIntrinsics.td or Targets/NVPTX/NVPTXIntrinsics.td?
> 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?
Any way that you can slices it to land it in stages would be preferred. Another major challenge will be to find someone to review the patch. You don't need detailed comments on every design aspect, but it is important to give you a basic "yeah, the structure looks fine and there aren't any obviously gratuitous code style violations" is the sort of review I'm looking for. I'm not sure a great way to get this, but asking on llvmdev is probably a good start.
Hi LLVM Developers,
I would like to merge the R600 backend from branches/R600 into TOT
prior to the LLVM 3.2 release. As you can see in the above paragraph,
Chris has asked me to find someone to review the code. If there is
anyone that would be willing to take the time and look at the code,
I would really appreciate it. For your convenience, I have split the
code into two patches:
R600.patch adds the code required to support the R600 generation of GPUs,
and SI.patch adds the code required to support the Southern Islands
generation of GPUs.
In addition, this code can be found in the branches/R600 branch of the
llvm SVN repository, as well as in my git repo:
git fetch git://people.freedesktop.org/~tstellar/llvm master
In the attached patches, the R600 backend is not built by default,
so you need to pass the --enable-experimental-targets=AMDGPU to build
it. If the backend is merged into TOT, I was planning to keep the
build disabled by default, but I don't mind enabling it if someone wants
to approve that change.
I will also be changing the name of the backend directory from AMDGPU to
R600 per Chris' suggestion. These patches still use the AMDGPU
directory, but I'll be updating the R600 branch with this change
as soon as I am able to pass along updated build instructions to our users.
Looking forward to your comments.