[llvm-branch-commits] [llvm-branch] r80456 - in /llvm/branches/Apple/Bender-SWB: include/llvm/CodeGen/AsmPrinter.h include/llvm/Target/TargetLowering.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/CodeGen/AsmPrinter/DwarfWriter.cpp lib/CodeGen/MachineModuleInfo.cpp lib/Target/PowerPC/PPCISelLowering.cpp lib/Target/PowerPC/PPCISelLowering.h lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h
Bill Wendling
isanbard at gmail.com
Sat Aug 29 17:06:01 PDT 2009
Author: void
Date: Sat Aug 29 19:06:01 2009
New Revision: 80456
URL: http://llvm.org/viewvc/llvm-project?rev=80456&view=rev
Log:
Port these revistions to Bender-SWB:
79969 79971 79981 80139 80146 80198 80208 80401 80414 80427 80428
Modified:
llvm/branches/Apple/Bender-SWB/include/llvm/CodeGen/AsmPrinter.h
llvm/branches/Apple/Bender-SWB/include/llvm/Target/TargetLowering.h
llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
llvm/branches/Apple/Bender-SWB/lib/CodeGen/MachineModuleInfo.cpp
llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.h
llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.cpp
llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.h
Modified: llvm/branches/Apple/Bender-SWB/include/llvm/CodeGen/AsmPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/include/llvm/CodeGen/AsmPrinter.h?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/include/llvm/CodeGen/AsmPrinter.h (original)
+++ llvm/branches/Apple/Bender-SWB/include/llvm/CodeGen/AsmPrinter.h Sat Aug 29 19:06:01 2009
@@ -259,6 +259,8 @@
void EOL() const;
void EOL(const std::string &Comment) const;
void EOL(const char* Comment) const;
+ void EOL(const std::string &Comment, unsigned Encoding) const;
+ void EOL(const char *Comment, unsigned Encoding) const;
/// EmitULEB128Bytes - Emit an assembler byte data directive to compose an
/// unsigned leb128 value.
Modified: llvm/branches/Apple/Bender-SWB/include/llvm/Target/TargetLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/include/llvm/Target/TargetLowering.h?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/include/llvm/Target/TargetLowering.h (original)
+++ llvm/branches/Apple/Bender-SWB/include/llvm/Target/TargetLowering.h Sat Aug 29 19:06:01 2009
@@ -31,6 +31,7 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/CodeGen/DebugLoc.h"
+#include "llvm/Support/Dwarf.h"
#include "llvm/Target/TargetMachine.h"
#include <climits>
#include <map>
@@ -721,13 +722,25 @@
/// getPICJumpTableRelocaBase - Returns relocation base for the given PIC
/// jumptable.
virtual SDValue getPICJumpTableRelocBase(SDValue Table,
- SelectionDAG &DAG) const;
+ SelectionDAG &DAG) const;
/// isOffsetFoldingLegal - Return true if folding a constant offset
/// with the given GlobalAddress is legal. It is frequently not legal in
/// PIC relocation models.
virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
+ /// getPreferredLSDADataFormat - Return the preferred exception handling data
+ /// format for the LSDA.
+ virtual unsigned getPreferredLSDADataFormat() const {
+ return dwarf::DW_EH_PE_absptr;
+ }
+
+ /// getPreferredFDEDataFormat - Return the preferred exception handling data
+ /// format for the FDE.
+ virtual unsigned getPreferredFDEDataFormat() const {
+ return dwarf::DW_EH_PE_absptr;
+ }
+
//===--------------------------------------------------------------------===//
// TargetLowering Optimization Methods
//
Modified: llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Sat Aug 29 19:06:01 2009
@@ -631,6 +631,56 @@
O << '\n';
}
+static const char *DecodeDWARFEncoding(unsigned Encoding) {
+ switch (Encoding) {
+ case dwarf::DW_EH_PE_absptr:
+ return "absptr";
+ case dwarf::DW_EH_PE_omit:
+ return "omit";
+ case dwarf::DW_EH_PE_pcrel:
+ return "pcrel";
+ case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata4:
+ return "pcrel udata4";
+ case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4:
+ return "pcrel sdata4";
+ case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata8:
+ return "pcrel udata8";
+ case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata8:
+ return "pcrel sdata8";
+ case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |dwarf::DW_EH_PE_udata4:
+ return "indirect pcrel udata4";
+ case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |dwarf::DW_EH_PE_sdata4:
+ return "indirect pcrel sdata4";
+ case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |dwarf::DW_EH_PE_udata8:
+ return "indirect pcrel udata8";
+ case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |dwarf::DW_EH_PE_sdata8:
+ return "indirect pcrel sdata8";
+ }
+
+ return 0;
+}
+
+void AsmPrinter::EOL(const std::string &Comment, unsigned Encoding) const {
+ if (VerboseAsm && !Comment.empty()) {
+ EOL(Comment.c_str(), Encoding);
+ return;
+ }
+ O << '\n';
+}
+
+void AsmPrinter::EOL(const char *Comment, unsigned Encoding) const {
+ if (VerboseAsm && *Comment) {
+ O << '\t'
+ << TAI->getCommentString()
+ << ' '
+ << Comment;
+
+ if (const char *EncStr = DecodeDWARFEncoding(Encoding))
+ O << " (" << EncStr << ')';
+ }
+ O << '\n';
+}
+
/// EmitULEB128Bytes - Emit an assembler byte data directive to compose an
/// unsigned leb128 value.
void AsmPrinter::EmitULEB128Bytes(unsigned Value) const {
Modified: llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Sat Aug 29 19:06:01 2009
@@ -33,6 +33,7 @@
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetFrameInfo.h"
#include "llvm/Target/TargetInstrInfo.h"
+#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/ADT/DenseMap.h"
@@ -3803,9 +3804,10 @@
/// ExceptionTimer - Timer for the Dwarf exception writer.
Timer *ExceptionTimer;
- /// EmitCommonEHFrame - Emit the common eh unwind frame.
- ///
- void EmitCommonEHFrame(const Function *Personality, unsigned Index) {
+ /// EmitCIE - Emit a Common Information Entry (CIE). This holds information
+ /// that is shared among many Frame Description Entries. There is at least
+ /// one CIE in every non-empty .debug_frame section.
+ void EmitCIE(const Function *Personality, unsigned Index) {
// Size and sign of stack growth.
int stackGrowth =
Asm->TM.getFrameInfo()->getStackGrowthDirection() ==
@@ -3832,6 +3834,7 @@
EmitLabel("eh_frame_common_begin", Index);
Asm->EmitInt32((int)0);
Asm->EOL("CIE Identifier Tag");
+
Asm->EmitInt8(DW_CIE_VERSION);
Asm->EOL("CIE Version");
@@ -3843,22 +3846,29 @@
// Round out reader.
Asm->EmitULEB128Bytes(1);
Asm->EOL("CIE Code Alignment Factor");
+
Asm->EmitSLEB128Bytes(stackGrowth);
Asm->EOL("CIE Data Alignment Factor");
+
Asm->EmitInt8(RI->getDwarfRegNum(RI->getRARegister(), true));
Asm->EOL("CIE Return Address Column");
- // If there is a personality, we need to indicate the functions location.
+ unsigned Encoding = 0;
+
+ // If there is a personality, we need to indicate the function's location.
if (Personality) {
Asm->EmitULEB128Bytes(7);
Asm->EOL("Augmentation Size");
if (TAI->getNeedsIndirectEncoding()) {
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4 | DW_EH_PE_indirect);
- Asm->EOL("Personality (pcrel sdata4 indirect)");
+ Encoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4 |
+ dwarf::DW_EH_PE_indirect;
+ Asm->EmitInt8(Encoding);
+ Asm->EOL("Personality", Encoding);
} else {
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("Personality (pcrel sdata4)");
+ Encoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
+ Asm->EmitInt8(Encoding);
+ Asm->EOL("Personality", Encoding);
}
PrintRelDirective(true);
@@ -3869,17 +3879,20 @@
O << "-" << TAI->getPCSymbol();
Asm->EOL("Personality");
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("LSDA Encoding (pcrel sdata4)");
-
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("FDE Encoding (pcrel sdata4)");
+ Encoding = Asm->TM.getTargetLowering()->getPreferredLSDADataFormat();
+ Asm->EmitInt8(Encoding);
+ Asm->EOL("LSDA Encoding", Encoding);
+
+ Encoding = Asm->TM.getTargetLowering()->getPreferredFDEDataFormat();
+ Asm->EmitInt8(Encoding);
+ Asm->EOL("FDE Encoding", Encoding);
} else {
Asm->EmitULEB128Bytes(1);
Asm->EOL("Augmentation Size");
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("FDE Encoding (pcrel sdata4)");
+ Encoding = Asm->TM.getTargetLowering()->getPreferredFDEDataFormat();
+ Asm->EmitInt8(Encoding);
+ Asm->EOL("FDE Encoding", Encoding);
}
// Indicate locations of general callee saved registers in frame.
@@ -3897,15 +3910,15 @@
Asm->EOL();
}
- /// EmitEHFrame - Emit function exception frame information.
- ///
- void EmitEHFrame(const FunctionEHFrameInfo &EHFrameInfo) {
+ /// EmitFDE - Emit the Frame Description Entry (FDE) for the function.
+ void EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) {
Function::LinkageTypes linkage = EHFrameInfo.function->getLinkage();
assert(!EHFrameInfo.function->hasAvailableExternallyLinkage() &&
"Should not emit 'available externally' functions at all");
Asm->SwitchToTextSection(TAI->getDwarfEHFrameSection());
+ bool is4Byte = TD->getPointerSize() == sizeof(int32_t);
// Externally visible entry into the functions eh frame info.
// If the corresponding function is static, this should not be
@@ -3968,22 +3981,26 @@
Asm->EOL("FDE CIE offset");
- EmitReference("eh_func_begin", EHFrameInfo.Number, true, true);
+ EmitReference("eh_func_begin", EHFrameInfo.Number, true, is4Byte);
Asm->EOL("FDE initial location");
EmitDifference("eh_func_end", EHFrameInfo.Number,
- "eh_func_begin", EHFrameInfo.Number, true);
+ "eh_func_begin", EHFrameInfo.Number, is4Byte);
Asm->EOL("FDE address range");
// If there is a personality and landing pads then point to the language
// specific data area in the exception table.
- if (EHFrameInfo.PersonalityIndex) {
- Asm->EmitULEB128Bytes(4);
+ if (MMI->getPersonalities()[0] != NULL) {
+ Asm->EmitULEB128Bytes(is4Byte ? 4 : 8);
Asm->EOL("Augmentation size");
- if (EHFrameInfo.hasLandingPads)
- EmitReference("exception", EHFrameInfo.Number, true, true);
- else
- Asm->EmitInt32((int)0);
+ if (EHFrameInfo.hasLandingPads) {
+ EmitReference("exception", EHFrameInfo.Number, true, false);
+ } else {
+ if (is4Byte)
+ Asm->EmitInt32((int)0);
+ else
+ Asm->EmitInt64((int)0);
+ }
Asm->EOL("Language Specific Data Area");
} else {
Asm->EmitULEB128Bytes(0);
@@ -4011,6 +4028,8 @@
if (const char *UsedDirective = TAI->getUsedDirective())
O << UsedDirective << EHFrameInfo.FnName << "\n\n";
}
+
+ Asm->EOL();
}
/// EmitExceptionTable - Emit landing pads and actions.
@@ -4453,11 +4472,11 @@
if (shouldEmitMovesModule || shouldEmitTableModule) {
const std::vector<Function *> Personalities = MMI->getPersonalities();
for (unsigned i = 0; i < Personalities.size(); ++i)
- EmitCommonEHFrame(Personalities[i], i);
+ EmitCIE(Personalities[i], i);
for (std::vector<FunctionEHFrameInfo>::iterator I = EHFrames.begin(),
E = EHFrames.end(); I != E; ++I)
- EmitEHFrame(*I);
+ EmitFDE(*I);
}
if (TimePassesIsEnabled)
Modified: llvm/branches/Apple/Bender-SWB/lib/CodeGen/MachineModuleInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/CodeGen/MachineModuleInfo.cpp?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/CodeGen/MachineModuleInfo.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/CodeGen/MachineModuleInfo.cpp Sat Aug 29 19:06:01 2009
@@ -44,7 +44,7 @@
, CallsUnwindInit(0)
, DbgInfoAvailable(false)
{
- // Always emit "no personality" info
+ // Always emit some info, by default "no personality" info.
Personalities.push_back(NULL);
}
MachineModuleInfo::~MachineModuleInfo() {
@@ -149,7 +149,12 @@
if (Personalities[i] == Personality)
return;
- Personalities.push_back(Personality);
+ // If this is the first personality we're adding go
+ // ahead and add it at the beginning.
+ if (Personalities[0] == NULL)
+ Personalities[0] = Personality;
+ else
+ Personalities.push_back(Personality);
}
/// addCatchTypeInfo - Provide the catch typeinfo for a landing pad.
@@ -273,7 +278,7 @@
}
/// getPersonalityIndex - Return unique index for current personality
-/// function. NULL personality function should always get zero index.
+/// function. NULL/first personality function should always get zero index.
unsigned MachineModuleInfo::getPersonalityIndex() const {
const Function* Personality = NULL;
@@ -289,8 +294,8 @@
return i;
}
- // This should never happen
- assert(0 && "Personality function should be set!");
+ // This will happen if the current personality function is
+ // in the zero index.
return 0;
}
Modified: llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.cpp?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.cpp Sat Aug 29 19:06:01 2009
@@ -4880,3 +4880,37 @@
// The PowerPC target isn't yet aware of offsets.
return false;
}
+
+/// getPreferredLSDADataFormat - Return the preferred exception handling data
+/// format for the LSDA.
+unsigned PPCTargetLowering::getPreferredLSDADataFormat() const {
+ if (getTargetMachine().getSubtarget<PPCSubtarget>().isDarwin())
+ return dwarf::DW_EH_PE_pcrel;
+
+ if (PPCSubTarget.isPPC64() ||
+ getTargetMachine().getRelocationModel() == Reloc::PIC_) {
+ unsigned DataTy =
+ (PPCSubTarget.isPPC64() ?
+ dwarf::DW_EH_PE_udata8 : dwarf::DW_EH_PE_udata4);
+ return dwarf::DW_EH_PE_pcrel | DataTy;
+ }
+
+ return dwarf::DW_EH_PE_absptr;
+}
+
+/// getPreferredFDEDataFormat - Return the preferred exception handling data
+/// format for the FDE.
+unsigned PPCTargetLowering::getPreferredFDEDataFormat() const {
+ if (getTargetMachine().getSubtarget<PPCSubtarget>().isDarwin())
+ return dwarf::DW_EH_PE_pcrel;
+
+ if (PPCSubTarget.isPPC64() ||
+ getTargetMachine().getRelocationModel() == Reloc::PIC_) {
+ unsigned DataTy =
+ (PPCSubTarget.isPPC64() ?
+ dwarf::DW_EH_PE_udata8 : dwarf::DW_EH_PE_udata4);
+ return dwarf::DW_EH_PE_pcrel | DataTy;
+ }
+
+ return dwarf::DW_EH_PE_absptr;
+}
Modified: llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.h?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.h (original)
+++ llvm/branches/Apple/Bender-SWB/lib/Target/PowerPC/PPCISelLowering.h Sat Aug 29 19:06:01 2009
@@ -337,6 +337,14 @@
virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
+ /// getPreferredLSDADataFormat - Return the preferred exception handling data
+ /// format for the LSDA.
+ virtual unsigned getPreferredLSDADataFormat() const;
+
+ /// getPreferredFDEDataFormat - Return the preferred exception handling data
+ /// format for the FDE.
+ virtual unsigned getPreferredFDEDataFormat() const;
+
private:
SDValue getFramePointerFrameIndex(SelectionDAG & DAG) const;
SDValue getReturnAddrFrameIndex(SelectionDAG & DAG) const;
Modified: llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.cpp?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.cpp Sat Aug 29 19:06:01 2009
@@ -933,6 +933,49 @@
return Table;
}
+/// getPreferredLSDADataFormat - Return the preferred exception handling data
+/// format for the LSDA.
+unsigned X86TargetLowering::getPreferredLSDADataFormat() const {
+ if (Subtarget->isTargetDarwin())
+ return dwarf::DW_EH_PE_pcrel;
+
+ CodeModel::Model M = getTargetMachine().getCodeModel();
+
+ if (getTargetMachine().getRelocationModel() == Reloc::PIC_) {
+ if (!Subtarget->is64Bit() || M == CodeModel::Small)
+ return dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
+
+ return dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata8;
+ }
+
+ if (M == CodeModel::Small)
+ return dwarf::DW_EH_PE_sdata4;
+
+ return dwarf::DW_EH_PE_absptr;
+}
+
+/// getPreferredFDEDataFormat - Return the preferred exception handling data
+/// format for the FDE.
+unsigned X86TargetLowering::getPreferredFDEDataFormat() const {
+ if (Subtarget->isTargetDarwin())
+ return dwarf::DW_EH_PE_pcrel;
+
+ CodeModel::Model M = getTargetMachine().getCodeModel();
+
+ if (getTargetMachine().getRelocationModel() == Reloc::PIC_) {
+ if (!Subtarget->is64Bit() ||
+ M == CodeModel::Small || M == CodeModel::Medium)
+ return dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
+
+ return dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata8;
+ }
+
+ if (M == CodeModel::Small || M == CodeModel::Medium)
+ return dwarf::DW_EH_PE_sdata4;
+
+ return dwarf::DW_EH_PE_absptr;
+}
+
//===----------------------------------------------------------------------===//
// Return Value Calling Convention Implementation
//===----------------------------------------------------------------------===//
Modified: llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.h?rev=80456&r1=80455&r2=80456&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.h (original)
+++ llvm/branches/Apple/Bender-SWB/lib/Target/X86/X86ISelLowering.h Sat Aug 29 19:06:01 2009
@@ -530,6 +530,14 @@
#endif
);
+ /// getPreferredLSDADataFormat - Return the preferred exception handling data
+ /// format for the LSDA.
+ virtual unsigned getPreferredLSDADataFormat() const;
+
+ /// getPreferredFDEDataFormat - Return the preferred exception handling data
+ /// format for the FDE.
+ virtual unsigned getPreferredFDEDataFormat() const;
+
private:
/// Subtarget - Keep a pointer to the X86Subtarget around so that we can
/// make the right decision when generating code for different targets.
More information about the llvm-branch-commits
mailing list