[llvm] r186724 - R600: Simplify AMDILCFGStructurize by removing templates and assuming single exit

Vincent Lejeune vljn at ovi.com
Sat Jul 20 06:34:29 PDT 2013


Hi,

the name of AMDGPUCFGStructurize is quite misleading, the purpose of this pass is to lower 
a machine function (with a linear cfg) into a single block machine function. It adds the "if/else/endif"
or "while/break/continue" statement between blocks.
Actually it could be shared by other targets like nvptx, but it would require some work to remove all the R600 specific bit first.

Vincent




----- Mail original -----
> De : Matt Arsenault <Matthew.Arsenault at amd.com>
> À : "Ye, Mei" <Mei.Ye at amd.com>
> Cc : Vincent Lejeune <vljn at ovi.com>; Tom Stellard <tom at stellard.net>; Evan Cheng <evan.cheng at apple.com>; Nick Lewycky <nicholas at mxc.ca>; llvm commits <llvm-commits at cs.uiuc.edu>
> Envoyé le : Samedi 20 juillet 2013 1h39
> Objet : Re: [llvm] r186724 - R600: Simplify AMDILCFGStructurize by removing
 templates and assuming single exit
> 
> On 07/19/2013 04:34 PM, Ye, Mei wrote:
>>  Hi Evan and Nick
>> 
>>  Vincent's changes reminded me that this is probably where Evan and Nick 
> will have preferred my changes to go.
>>  But isn't there something in AMDGPUCFG* that can be code-shared with 
> other GPU targets?
> The target independent CFG structurizer can be, and it's what's used for 
> 
> SI. I moved it recently into the generic transforms 
> (lib/Transforms/StructurizeCFG.cpp).
> 




More information about the llvm-commits mailing list