OSDN Git Service

* combine.c (simplify_shift_const): Calculate rotate count
[pf3gnuchains/gcc-fork.git] / gcc / flags.h
index 8c8fa26..4ff7fcf 100644 (file)
@@ -1,5 +1,5 @@
 /* Compilation switch flag definitions for GCC.
-   Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+   Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -33,9 +33,9 @@ enum debug_info_type
   DWARF_DEBUG,     /* Write Dwarf debug info (using dwarfout.c).  */
   DWARF2_DEBUG,            /* Write Dwarf v2 debug info (using dwarf2out.c).  */
   XCOFF_DEBUG,     /* Write IBM/Xcoff debug info (using dbxout.c).  */
-  VMS_DEBUG,        /* Write VMS debug info (using vmsdbgout.c). */
+  VMS_DEBUG,        /* Write VMS debug info (using vmsdbgout.c).  */
   VMS_AND_DWARF2_DEBUG /* Write VMS debug info (using vmsdbgout.c).
-                          and DWARF v2 debug info (using dwarf2out.c). */
+                          and DWARF v2 debug info (using dwarf2out.c).  */
 };
 
 /* Specify which kind of debugging info to generate.  */
@@ -126,10 +126,20 @@ extern int warn_unknown_pragmas;
 
 extern int warn_shadow;
 
-/* Warn if a switch on an enum fails to have a case for every enum value.  */
+/* Warn if a switch on an enum, that does not have a default case,
+   fails to have a case for every enum value.  */
 
 extern int warn_switch;
 
+/* Warn if a switch does not have a default case.  */
+
+extern int warn_switch_default;
+
+/* Warn if a switch on an enum fails to have a case for every enum
+   value (regardless of the presence or otherwise of a default case).  */
+
+extern int warn_switch_enum;
+
 /* Nonzero means warn about function definitions that default the return type
    or that use a null return and have a return-type other than void.  */
 
@@ -169,13 +179,14 @@ extern int warn_padded;
 
 extern int warn_disabled_optimization;
 
-/* Nonzero if generating code to do profiling.  */
+/* Nonzero means warn about uses of __attribute__((deprecated)) 
+   declarations.  */
 
-extern int profile_flag;
+extern int warn_deprecated_decl;
 
-/* Nonzero if generating code to do profiling on the basis of basic blocks.  */
+/* Nonzero if generating code to do profiling.  */
 
-extern int profile_block_flag;
+extern int profile_flag;
 
 /* Nonzero if generating code to profile program flow graph arcs.  */
 
@@ -193,6 +204,10 @@ extern int flag_branch_probabilities;
 
 extern int flag_reorder_blocks;
 
+/* Nonzero if functions should be reordered.  */
+
+extern int flag_reorder_functions;
+
 /* Nonzero if registers should be renamed.  */
 
 extern int flag_rename_registers;
@@ -273,6 +288,10 @@ extern int flag_unroll_all_loops;
 
 extern int flag_move_all_movables;
 
+/* Nonzero enables prefetch optimizations for arrays in loops.  */
+
+extern int flag_prefetch_loop_arrays;
+
 /* Nonzero forces all general induction variables in loops to be
    strength reduced.  */
 
@@ -340,6 +359,10 @@ extern int flag_errno_math;
 
 extern int flag_unsafe_math_optimizations;
 
+/* Nonzero means that no NaNs or +-Infs are expected.  */
+
+extern int flag_finite_math_only;
+
 /* Zero means that floating-point math operations cannot generate a
    (user-visible) trap.  This is the case, for example, in nonstop
    IEEE 754 arithmetic.  */
@@ -375,6 +398,11 @@ extern int flag_keep_inline_functions;
 
 extern int flag_no_inline;
 
+/* Nonzero means that we don't want inlining by virtue of -fno-inline,
+   not just because the tree inliner turned us off.  */
+
+extern int flag_really_no_inline;
+
 /* Nonzero if we are only using compiler to check syntax errors.  */
 
 extern int flag_syntax_only;
@@ -429,22 +457,27 @@ extern int flag_delayed_branch;
 
 extern int flag_dump_unnumbered;
 
-/* Nonzero means pretend it is OK to examine bits of target floats,
-   even if that isn't true.  The resulting code will have incorrect constants,
-   but the same series of instructions that the native compiler would make.  */
-
-extern int flag_pretend_float;
-
 /* Nonzero means change certain warnings into errors.
    Usually these are warnings about failure to conform to some standard.  */
 
 extern int flag_pedantic_errors;
 
-/* Nonzero means generate position-independent code.
-   This is not fully implemented yet.  */
+/* Nonzero means generate position-independent code.  1 vs 2 for a 
+   target-dependent "small" or "large" mode.  */
 
 extern int flag_pic;
 
+/* Set to the default thread-local storage (tls) model to use.  */
+
+enum tls_model {
+  TLS_MODEL_GLOBAL_DYNAMIC = 1,
+  TLS_MODEL_LOCAL_DYNAMIC,
+  TLS_MODEL_INITIAL_EXEC,
+  TLS_MODEL_LOCAL_EXEC
+};
+
+extern enum tls_model flag_tls_default;
+
 /* Nonzero means generate extra code for exception handling and enable
    exception handling.  */
 
@@ -569,19 +602,10 @@ extern int flag_renumber_insns;
 
 extern int frame_pointer_needed;
 
-/* Nonzero if GCC must add code to check memory access (used by Checker).  */
-
-extern int flag_check_memory_usage;
-
 /* Nonzero if the generated code should trap on signed overflow
    for PLUS / SUB / MULT.  */
 extern int flag_trapv;
 
-/* Nonzero if GCC must prefix function names (used with
-   flag_check_memory_usage).  */
-
-extern int flag_prefix_function_name;
-
 /* Value of the -G xx switch, and whether it was passed or not.  */
 extern int g_switch_value;
 extern int g_switch_set;
@@ -640,4 +664,36 @@ extern int flag_detailed_statistics;
 /* Nonzero means enable synchronous exceptions for non-call instructions.  */
 extern int flag_non_call_exceptions;
 
+/* Nonzero means put zero initialized data in the bss section.  */
+extern int flag_zero_initialized_in_bss;
+
+/* Nonzero means disable transformations observable by signaling NaNs.  */
+extern int flag_signaling_nans;
+
+/* True if the given mode has a NaN representation and the treatment of
+   NaN operands is important.  Certain optimizations, such as folding
+   x * 0 into x, are not correct for NaN operands, and are normally
+   disabled for modes with NaNs.  The user can ask for them to be
+   done anyway using the -funsafe-math-optimizations switch.  */
+#define HONOR_NANS(MODE) \
+  (MODE_HAS_NANS (MODE) && !flag_finite_math_only)
+
+/* Like HONOR_NANs, but true if we honor signaling NaNs (or sNaNs).  */
+#define HONOR_SNANS(MODE) (flag_signaling_nans && HONOR_NANS (MODE))
+
+/* As for HONOR_NANS, but true if the mode can represent infinity and
+   the treatment of infinite values is important.  */
+#define HONOR_INFINITIES(MODE) \
+  (MODE_HAS_INFINITIES (MODE) && !flag_finite_math_only)
+
+/* Like HONOR_NANS, but true if the given mode distinguishes between
+   postive and negative zero, and the sign of zero is important.  */
+#define HONOR_SIGNED_ZEROS(MODE) \
+  (MODE_HAS_SIGNED_ZEROS (MODE) && !flag_unsafe_math_optimizations)
+
+/* Like HONOR_NANS, but true if given mode supports sign-dependent rounding,
+   and the rounding mode is important.  */
+#define HONOR_SIGN_DEPENDENT_ROUNDING(MODE) \
+  (MODE_HAS_SIGN_DEPENDENT_ROUNDING (MODE) && !flag_unsafe_math_optimizations)
+
 #endif /* ! GCC_FLAGS_H */