summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-09-15 11:02:19 +0000
committerTim Northover <tnorthover@apple.com>2016-09-15 11:02:19 +0000
commit22d82cf1796b6353f3d898e82671d98caede5cd0 (patch)
tree2579c88246a4bd1aa8ec5fa507e2ae70813486a1 /llvm/lib/CodeGen
parentb293fc783b474cbfdfb4ffe646d5b4afe90e0b79 (diff)
downloadbcm5719-llvm-22d82cf1796b6353f3d898e82671d98caede5cd0.tar.gz
bcm5719-llvm-22d82cf1796b6353f3d898e82671d98caede5cd0.zip
GlobalISel: legalize GEP instructions with small offsets.
llvm-svn: 281602
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp b/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
index 7c32cd5314b..6d181396079 100644
--- a/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
@@ -281,6 +281,13 @@ MachineLegalizeHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx,
MI.eraseFromParent();
return Legalized;
}
+ case TargetOpcode::G_GEP: {
+ assert(TypeIdx == 1 && "unable to legalize pointer of GEP");
+ unsigned OffsetExt = MRI.createGenericVirtualRegister(WideTy);
+ MIRBuilder.buildSExt(OffsetExt, MI.getOperand(2).getReg());
+ MI.getOperand(2).setReg(OffsetExt);
+ return Legalized;
+ }
}
}
OpenPOWER on IntegriCloud