Hexagon constant extender support.

Patch by Jyotsna Verma.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156634 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/Hexagon/HexagonTargetMachine.cpp b/lib/Target/Hexagon/HexagonTargetMachine.cpp
index 8af95a9..cad1473 100644
--- a/lib/Target/Hexagon/HexagonTargetMachine.cpp
+++ b/lib/Target/Hexagon/HexagonTargetMachine.cpp
@@ -28,6 +28,10 @@
 opt<bool> DisableHardwareLoops(
                         "disable-hexagon-hwloops", cl::Hidden,
                         cl::desc("Disable Hardware Loops for Hexagon target"));
+static cl::
+opt<bool> DisableCExtOpt(
+                        "disable-hexagon-cextopt", cl::Hidden,
+                        cl::desc("Disable Optimization of Constant Extenders"));
 
 /// HexagonTargetMachineModule - Note that this is used on hosts that
 /// cannot link in a library unless there are references into the
@@ -110,6 +114,9 @@
 
 
 bool HexagonPassConfig::addPreRegAlloc() {
+  if (!DisableCExtOpt) {
+    PM->add(createHexagonOptimizeConstExt(getHexagonTargetMachine()));
+  }
   if (!DisableHardwareLoops) {
     PM->add(createHexagonHardwareLoops());
   }