OSDN Git Service

* trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
[pf3gnuchains/gcc-fork.git] / gcc / flag-types.h
index 1a8edec..430ac93 100644 (file)
@@ -34,7 +34,7 @@ enum debug_info_type
                           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.  */
@@ -58,6 +58,41 @@ enum debug_info_usage
   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
@@ -71,12 +106,6 @@ enum symbol_visibility
 };
 #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
 {
@@ -152,4 +181,27 @@ enum warn_strict_overflow_code
   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 */