diff options
| author | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-29 10:08:09 +0000 |
|---|---|---|
| committer | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-29 10:08:09 +0000 |
| commit | 1842ada3ad766802d4f7c194ff54e5f5077bd4ca (patch) | |
| tree | 48c8a9e1c09788ddad3d3fafa6607480467659bd /llvm/lib | |
| parent | 427add8f2445d2bb0d67a44fe178618d7bd36a87 (diff) | |
| download | bcm5719-llvm-1842ada3ad766802d4f7c194ff54e5f5077bd4ca.tar.gz bcm5719-llvm-1842ada3ad766802d4f7c194ff54e5f5077bd4ca.zip | |
Allow machine LICM to do its job on SPU.
-return a sensible value for register pressure
-add pattern to 'ila' instrucion
llvm-svn: 120285
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUISelLowering.h | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUInstrInfo.td | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUISelLowering.h b/llvm/lib/Target/CellSPU/SPUISelLowering.h index 82f10270db3..95d44afe37c 100644 --- a/llvm/lib/Target/CellSPU/SPUISelLowering.h +++ b/llvm/lib/Target/CellSPU/SPUISelLowering.h @@ -181,6 +181,14 @@ namespace llvm { virtual bool isLegalAddressingMode(const AddrMode &AM, const Type *Ty) const; + + /// After allocating this many registers, the allocator should feel + /// register pressure. The value is a somewhat random guess, based on the + /// number of non callee saved registers in the C calling convention. + virtual unsigned getRegPressureLimit( const TargetRegisterClass *RC, + MachineFunction &MF) const{ + return 50; + } }; } diff --git a/llvm/lib/Target/CellSPU/SPUInstrInfo.td b/llvm/lib/Target/CellSPU/SPUInstrInfo.td index 7794f9d4459..6e06e47c496 100644 --- a/llvm/lib/Target/CellSPU/SPUInstrInfo.td +++ b/llvm/lib/Target/CellSPU/SPUInstrInfo.td @@ -416,7 +416,7 @@ multiclass ImmLoadAddress def lo: ILARegInst<R32C, symbolLo, imm18>; def lsa: ILAInst<(outs R32C:$rT), (ins symbolLSA:$val), - [/* no pattern */]>; + [(set R32C:$rT, imm18:$val)]>; } defm ILA : ImmLoadAddress; |

