Index: lib/Target/ARM/ARMSubtarget.h |
diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h |
index 7e8370589a0007645962336f4d2353e1c4610a70..56d15c0152118a30cfafc1ec6d534effab28f6f3 100644 |
--- a/lib/Target/ARM/ARMSubtarget.h |
+++ b/lib/Target/ARM/ARMSubtarget.h |
@@ -38,6 +38,8 @@ class GlobalValue; |
class StringRef; |
class TargetOptions; |
+extern cl::opt<bool> EnableARMDwarfEH; // @LOCALMOD |
+ |
class ARMSubtarget : public ARMGenSubtargetInfo { |
protected: |
enum ARMProcFamilyEnum { |
@@ -106,6 +108,14 @@ protected: |
/// IsR9Reserved - True if R9 is a not available as general purpose register. |
bool IsR9Reserved; |
+ // @LOCALMOD-START |
+ /// UseInlineJumpTables - True if jump tables should be in-line in the code. |
+ bool UseInlineJumpTables; |
+ |
+ /// UseConstIslands - True if constant islands should be used. |
+ bool UseConstIslands; |
+ // @LOCALMOD-END |
+ |
/// UseMovt - True if MOVT / MOVW pairs are used for materialization of 32-bit |
/// imms (including global addresses). |
bool UseMovt; |
@@ -375,7 +385,8 @@ public: |
TargetTriple.getEnvironment() == Triple::EABIHF || |
TargetTriple.getEnvironment() == Triple::GNUEABIHF || |
TargetTriple.getEnvironment() == Triple::Android) && |
- !isTargetDarwin() && !isTargetWindows(); |
+ !isTargetDarwin() && !isTargetWindows() && |
+ !isTargetNaCl() && !EnableARMDwarfEH; // @LOCALMOD |
} |
bool isTargetHardFloat() const { |
@@ -415,6 +426,9 @@ public: |
bool supportsTailCall() const { return SupportsTailCall; } |
+ // @LOCALMOD |
+ bool useConstIslands() const { return UseConstIslands; } |
+ |
bool allowsUnalignedMem() const { return AllowsUnalignedMem; } |
bool restrictIT() const { return RestrictIT; } |
@@ -450,6 +464,7 @@ public: |
/// symbol. |
bool GVIsIndirectSymbol(const GlobalValue *GV, Reloc::Model RelocM) const; |
+ bool useInlineJumpTables() const {return UseInlineJumpTables;} // @LOCALMOD |
}; |
} // End llvm namespace |