[llvm-commits] [llvm] r133782 - in /llvm/trunk: ./ include/llvm/MC/ include/llvm/Target/ lib/CodeGen/ lib/Target/ lib/Target/ARM/ lib/Target/Alpha/ lib/Target/Blackfin/ lib/Target/CellSPU/ lib/Target/MBlaze/ lib/Target/MSP430/ lib/Target/Mips/ lib/Target/PTX/ lib/Target/PowerPC/ lib/Target/Sparc/ lib/Target/SystemZ/ lib/Target/X86/ lib/Target/X86/TargetDesc/ lib/Target/XCore/ utils/TableGen/

Evan Cheng evan.cheng at apple.com
Fri Jun 24 16:48:46 PDT 2011


On Jun 24, 2011, at 2:15 PM, Chris Lattner wrote:

> On Jun 23, 2011, at 6:44 PM, Evan Cheng wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=133782&view=rev
>> Log:
>> Starting to refactor Target to separate out code that's needed to fully describe
>> target machine from those that are only needed by codegen. The goal is to
>> sink the essential target description into MC layer so we can start building
>> MC based tools without needing to link in the entire codegen.
>> 
>> First step is to refactor TargetRegisterInfo. This patch added a base class
>> MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to
>> separate register description from the rest of the stuff.
> 
> 
> 
>> +++ llvm/trunk/include/llvm/MC/MCRegisterInfo.h Thu Jun 23 20:44:41 2011
>> 
> 
> Looks very nice!
> 
>> +++ llvm/trunk/lib/Target/ARM/ARMBaseRegisterInfo.cpp Thu Jun 23 20:44:41 2011
>> @@ -39,6 +39,8 @@
>> #include "llvm/ADT/BitVector.h"
>> #include "llvm/ADT/SmallVector.h"
>> #include "llvm/Support/CommandLine.h"
>> +#include "ARMGenRegisterDesc.inc"
>> +#include "ARMGenRegisterInfo.inc"
> 
> Can these two .inc files get merged?  It would be nice to have one tblgen output file for registers that contains everything in one file.  Basically all the -gen-register* tblgen backends can be merged to produce one output file.

I'll deal with this later.

> 
>> MBlazeRegisterInfo(const MBlazeSubtarget &ST, const TargetInstrInfo &tii)
>> -  : MBlazeGenRegisterInfo(MBlaze::ADJCALLSTACKDOWN, MBlaze::ADJCALLSTACKUP),
>> +  : MBlazeGenRegisterInfo(MBlazeRegDesc, MBlazeRegInfoDesc,
>> +                          MBlaze::ADJCALLSTACKDOWN, MBlaze::ADJCALLSTACKUP),
>>    Subtarget(ST), TII(tii) {}
> 
> Incidentally, (and I know this isn't your fault) the ADJCALLSTACKDOWN stuff should be in InstrInfo, not register info :)
> 
>> +++ llvm/trunk/lib/Target/X86/TargetDesc/Makefile Thu Jun 23 20:44:41 2011
>> @@ -0,0 +1,16 @@
>> +##===- lib/Target/X86/TargetDesc/Makefile ------------------*- Makefile -*-===##
> 
> Random picky thing: should this be "X86/MCTargetDesc"?  That would make it very clearly part of the MC layer.

Sure.

Evan

> 
> Overall, this is really great work,
> 
> -Chris




More information about the llvm-commits mailing list