[llvm] r270178 - Target: move the EH enumeration and add option
David Majnemer via llvm-commits
llvm-commits at lists.llvm.org
Fri May 20 00:02:01 PDT 2016
Why do we even need ExceptionHandling? Can't this be inferred from the
personality routine (+ maybe the triple)?
On Thursday, May 19, 2016, Saleem Abdulrasool via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: compnerd
> Date: Thu May 19 22:39:28 2016
> New Revision: 270178
>
> URL: http://llvm.org/viewvc/llvm-project?rev=270178&view=rev
> Log:
> Target: move the EH enumeration and add option
>
> Move the ExceptionHandling enumeration into TargetOptions and introduce a
> field
> to track the desired exception model. This will allow us to set the
> exception
> model from the frontend (needed to optionally use SjLj EH on other targets
> where
> zero-cost is available and preferred).
>
> Modified:
> llvm/trunk/include/llvm/MC/MCAsmInfo.h
> llvm/trunk/include/llvm/Target/TargetOptions.h
>
> Modified: llvm/trunk/include/llvm/MC/MCAsmInfo.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmInfo.h?rev=270178&r1=270177&r2=270178&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCAsmInfo.h (original)
> +++ llvm/trunk/include/llvm/MC/MCAsmInfo.h Thu May 19 22:39:28 2016
> @@ -16,6 +16,7 @@
> #ifndef LLVM_MC_MCASMINFO_H
> #define LLVM_MC_MCASMINFO_H
>
> +#include "llvm/Target/TargetOptions.h"
> #include "llvm/MC/MCDirectives.h"
> #include "llvm/MC/MCDwarf.h"
> #include <cassert>
> @@ -41,14 +42,6 @@ enum class EncodingType {
> };
> }
>
> -enum class ExceptionHandling {
> - None, /// No exception support
> - DwarfCFI, /// DWARF-like instruction based exceptions
> - SjLj, /// setjmp/longjmp based exceptions
> - ARM, /// ARM EHABI
> - WinEH, /// Windows Exception Handling
> -};
> -
> namespace LCOMM {
> enum LCOMMType { NoAlignment, ByteAlignment, Log2Alignment };
> }
>
> Modified: llvm/trunk/include/llvm/Target/TargetOptions.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetOptions.h?rev=270178&r1=270177&r2=270178&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetOptions.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetOptions.h Thu May 19 22:39:28 2016
> @@ -88,6 +88,14 @@ namespace llvm {
> SCE // Tune debug info for SCE targets (e.g. PS4).
> };
>
> + enum class ExceptionHandling {
> + None, /// No exception support
> + DwarfCFI, /// DWARF-like instruction based exceptions
> + SjLj, /// setjmp/longjmp based exceptions
> + ARM, /// ARM EHABI
> + WinEH, /// Windows Exception Handling
> + };
> +
> class TargetOptions {
> public:
> TargetOptions()
> @@ -95,14 +103,15 @@ namespace llvm {
> UnsafeFPMath(false), NoInfsFPMath(false), NoNaNsFPMath(false),
> HonorSignDependentRoundingFPMathOption(false),
> NoZerosInBSS(false),
> GuaranteedTailCallOpt(false), StackAlignmentOverride(0),
> - StackSymbolOrdering(true), EnableFastISel(false),
> - UseInitArray(false), DisableIntegratedAS(false),
> - CompressDebugSections(false), FunctionSections(false),
> - DataSections(false), UniqueSectionNames(true),
> TrapUnreachable(false),
> - EmulatedTLS(false), FloatABIType(FloatABI::Default),
> + StackSymbolOrdering(true), EnableFastISel(false),
> UseInitArray(false),
> + DisableIntegratedAS(false), CompressDebugSections(false),
> + FunctionSections(false), DataSections(false),
> + UniqueSectionNames(true), TrapUnreachable(false),
> EmulatedTLS(false),
> + FloatABIType(FloatABI::Default),
> AllowFPOpFusion(FPOpFusion::Standard),
> Reciprocals(TargetRecip()),
> JTType(JumpTable::Single), ThreadModel(ThreadModel::POSIX),
> - EABIVersion(EABI::Default),
> DebuggerTuning(DebuggerKind::Default) {}
> + EABIVersion(EABI::Default),
> DebuggerTuning(DebuggerKind::Default),
> + ExceptionModel(ExceptionHandling::None) {}
>
> /// PrintMachineCode - This flag is enabled when the
> -print-machineinstrs
> /// option is specified on the command line, and should enable
> debugging
> @@ -246,6 +255,9 @@ namespace llvm {
> /// Which debugger to tune for.
> DebuggerKind DebuggerTuning;
>
> + /// What exception model to use
> + ExceptionHandling ExceptionModel;
> +
> /// Machine level options.
> MCTargetOptions MCOptions;
> };
> @@ -275,6 +287,7 @@ inline bool operator==(const TargetOptio
> ARE_EQUAL(ThreadModel) &&
> ARE_EQUAL(EABIVersion) &&
> ARE_EQUAL(DebuggerTuning) &&
> + ARE_EQUAL(ExceptionModel) &&
> ARE_EQUAL(MCOptions);
> #undef ARE_EQUAL
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <javascript:;>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160520/d24b801d/attachment.html>
More information about the llvm-commits
mailing list