Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:55

0001 //===--- DebugInfoOptions.h - Debug Info Emission Types ---------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_FRONTEND_DEBUG_OPTIONS_H
0010 #define LLVM_FRONTEND_DEBUG_OPTIONS_H
0011 
0012 namespace llvm {
0013 namespace codegenoptions {
0014 
0015 enum DebugInfoFormat {
0016   DIF_DWARF,
0017   DIF_CodeView,
0018 };
0019 
0020 enum DebugInfoKind {
0021   /// Don't generate debug info.
0022   NoDebugInfo,
0023 
0024   /// Emit location information but do not generate debug info in the output.
0025   /// This is useful in cases where the backend wants to track source
0026   /// locations for instructions without actually emitting debug info for them
0027   /// (e.g., when -Rpass is used).
0028   LocTrackingOnly,
0029 
0030   /// Emit only debug directives with the line numbers data
0031   DebugDirectivesOnly,
0032 
0033   /// Emit only debug info necessary for generating line number tables
0034   /// (-gline-tables-only).
0035   DebugLineTablesOnly,
0036 
0037   /// Limit generated debug info for classes to reduce size. This emits class
0038   /// type info only where the constructor is emitted, if it is a class that
0039   /// has a constructor.
0040   /// FIXME: Consider combining this with LimitedDebugInfo.
0041   DebugInfoConstructor,
0042 
0043   /// Limit generated debug info to reduce size (-fno-standalone-debug). This
0044   /// emits forward decls for types that could be replaced with forward decls in
0045   /// the source code. For dynamic C++ classes type info is only emitted into
0046   /// the module that contains the classe's vtable.
0047   LimitedDebugInfo,
0048 
0049   /// Generate complete debug info.
0050   FullDebugInfo,
0051 
0052   /// Generate debug info for types that may be unused in the source
0053   /// (-fno-eliminate-unused-debug-types).
0054   UnusedTypeInfo,
0055 };
0056 
0057 enum class DebugTemplateNamesKind { Full, Simple, Mangled };
0058 
0059 } // end namespace codegenoptions
0060 } // end namespace llvm
0061 
0062 #endif