and DWARF v2 debug info (using dwarf2out.c). */
};
-enum debug_info_level
+enum debug_info_levels
{
DINFO_LEVEL_NONE, /* Write no debugging info. */
DINFO_LEVEL_TERSE, /* Write minimal info to support tracebacks only. */
DINFO_USAGE_NUM_ENUMS /* The number of enumerators. */
};
+/* A major contribution to object and executable size is debug
+ information size. A major contribution to debug information size
+ is struct descriptions replicated in several object files. The
+ following flags attempt to reduce this information. The basic
+ idea is to not emit struct debugging information in the current
+ compilation unit when that information will be generated by
+ another compilation unit.
+
+ Debug information for a struct defined in the current source
+ file should be generated in the object file. Likewise the
+ debug information for a struct defined in a header should be
+ generated in the object file of the corresponding source file.
+ Both of these case are handled when the base name of the file of
+ the struct definition matches the base name of the source file
+ of the current compilation unit. This matching emits minimal
+ struct debugging information.
+
+ The base file name matching rule above will fail to emit debug
+ information for structs defined in system headers. So a second
+ category of files includes system headers in addition to files
+ with matching bases.
+
+ The remaining types of files are library headers and application
+ headers. We cannot currently distinguish these two types. */
+
+enum debug_struct_file
+{
+ DINFO_STRUCT_FILE_NONE, /* Debug no structs. */
+ DINFO_STRUCT_FILE_BASE, /* Debug structs defined in files with the
+ same base name as the compilation unit. */
+ DINFO_STRUCT_FILE_SYS, /* Also debug structs defined in system
+ header files. */
+ DINFO_STRUCT_FILE_ANY /* Debug structs defined in all files. */
+};
+
/* Enumerate visibility settings. This is deliberately ordered from most
to least visibility. */
#ifndef SYMBOL_VISIBILITY_DEFINED
};
#endif
-struct visibility_flags
-{
- unsigned inpragma : 1; /* True when in #pragma GCC visibility. */
- unsigned inlines_hidden : 1; /* True when -finlineshidden in effect. */
-};
-
/* The algorithm used for the integrated register allocator (IRA). */
enum ira_algorithm
{
WARN_STRICT_OVERFLOW_MAGNITUDE = 5
};
+/* Floating-point contraction mode. */
+enum fp_contract_mode {
+ FP_CONTRACT_OFF = 0,
+ FP_CONTRACT_ON = 1,
+ FP_CONTRACT_FAST = 2
+};
+
+/* Vectorizer verbosity levels. */
+enum vect_verbosity_levels {
+ REPORT_NONE,
+ REPORT_VECTORIZED_LOCATIONS,
+ REPORT_UNVECTORIZED_LOCATIONS,
+ REPORT_COST,
+ REPORT_ALIGNMENT,
+ REPORT_DR_DETAILS,
+ REPORT_BAD_FORM_LOOPS,
+ REPORT_OUTER_LOOPS,
+ REPORT_SLP,
+ REPORT_DETAILS,
+ /* New verbosity levels should be added before this one. */
+ MAX_VERBOSITY_LEVEL
+};
+
#endif /* ! GCC_FLAG_TYPES_H */