src/share/vm/opto/c2_globals.hpp

Print this page
rev 11264 : 8150900: Implement diagnostic_pd
Reviewed-by: twisti, gziemski, kevinw


  49 #endif
  50 #ifdef TARGET_OS_FAMILY_windows
  51 # include "c2_globals_windows.hpp"
  52 #endif
  53 #ifdef TARGET_OS_FAMILY_aix
  54 # include "c2_globals_aix.hpp"
  55 #endif
  56 #ifdef TARGET_OS_FAMILY_bsd
  57 # include "c2_globals_bsd.hpp"
  58 #endif
  59 
  60 //
  61 // Defines all globals flags used by the server compiler.
  62 //
  63 
  64 #define C2_FLAGS(develop, \
  65                  develop_pd, \
  66                  product, \
  67                  product_pd, \
  68                  diagnostic, \

  69                  experimental, \
  70                  notproduct, \
  71                  range, \
  72                  constraint, \
  73                  writeable) \
  74                                                                             \
  75   develop(bool, StressLCM, false,                                           \
  76           "Randomize instruction scheduling in LCM")                        \
  77                                                                             \
  78   develop(bool, StressGCM, false,                                           \
  79           "Randomize instruction scheduling in GCM")                        \
  80                                                                             \
  81   develop(intx, OptoPrologueNops, 0,                                        \
  82           "Insert this many extra nop instructions "                        \
  83           "in the prologue of every nmethod")                               \
  84           range(0, 128)                                                     \
  85                                                                             \
  86   product_pd(intx, InteriorEntryAlignment,                                  \
  87           "Code alignment for interior entry points "                       \
  88           "in generated code (in bytes)")                                   \


 186                                                                             \
 187   develop(bool, TraceOptoParse, false,                                      \
 188           "Trace bytecode parse and control-flow merge")                    \
 189                                                                             \
 190   product_pd(intx,  LoopUnrollLimit,                                        \
 191           "Unroll loop bodies with node count less than this")              \
 192           range(0, max_jint / 4)                                            \
 193                                                                             \
 194   product_pd(intx, LoopPercentProfileLimit,                                 \
 195              "Unroll loop bodies with % node count of profile limit")       \
 196              range(10, 100)                                                 \
 197                                                                             \
 198   product(intx,  LoopMaxUnroll, 16,                                         \
 199           "Maximum number of unrolls for main loop")                        \
 200           range(0, max_jint)                                                \
 201                                                                             \
 202   product_pd(bool,  SuperWordLoopUnrollAnalysis,                            \
 203            "Map number of unrolls for main loop via "                       \
 204            "Superword Level Parallelism analysis")                          \
 205                                                                             \
 206   product_pd(bool, PostLoopMultiversioning,                                 \
 207            "Multi versioned post loops to eliminate range checks")          \
 208                                                                             \
 209   notproduct(bool, TraceSuperWordLoopUnrollAnalysis, false,                 \
 210           "Trace what Superword Level Parallelism analysis applies")        \
 211                                                                             \
 212   product(intx,  LoopUnrollMin, 4,                                          \
 213           "Minimum number of unroll loop bodies before checking progress"   \
 214           "of rounds of unroll,optimize,..")                                \
 215           range(0, max_jint)                                                \
 216                                                                             \
 217   develop(intx, UnrollLimitForProfileCheck, 1,                              \
 218           "Don't use profile_trip_cnt() to restrict unrolling until "       \
 219           "unrolling would push the number of unrolled iterations above "   \
 220           "UnrollLimitForProfileCheck. A higher value allows more "         \
 221           "unrolling. Zero acts as a very large value." )                   \
 222           range(0, max_intx)                                                \
 223                                                                             \
 224   product(intx, MultiArrayExpandLimit, 6,                                   \
 225           "Maximum number of individual allocations in an inline-expanded " \
 226           "multianewarray instruction")                                     \


 747   product_pd(bool, TrapBasedRangeChecks,                                    \
 748           "Generate code for range checks that uses a cmp and trap "        \
 749           "instruction raising SIGTRAP. Used on PPC64.")                    \
 750                                                                             \
 751   product(intx, ArrayCopyLoadStoreMaxElem, 8,                               \
 752           "Maximum number of arraycopy elements inlined as a sequence of"   \
 753           "loads/stores")                                                   \
 754           range(0, max_intx)                                                \
 755                                                                             \
 756   develop(bool, StressArrayCopyMacroNode, false,                            \
 757           "Perform ArrayCopy load/store replacement during IGVN only")      \
 758                                                                             \
 759   develop(bool, RenumberLiveNodes, true,                                    \
 760           "Renumber live nodes")                                            \
 761 
 762 C2_FLAGS(DECLARE_DEVELOPER_FLAG, \
 763          DECLARE_PD_DEVELOPER_FLAG, \
 764          DECLARE_PRODUCT_FLAG, \
 765          DECLARE_PD_PRODUCT_FLAG, \
 766          DECLARE_DIAGNOSTIC_FLAG, \

 767          DECLARE_EXPERIMENTAL_FLAG, \
 768          DECLARE_NOTPRODUCT_FLAG, \
 769          IGNORE_RANGE, \
 770          IGNORE_CONSTRAINT, \
 771          IGNORE_WRITEABLE)
 772 
 773 #endif // SHARE_VM_OPTO_C2_GLOBALS_HPP


  49 #endif
  50 #ifdef TARGET_OS_FAMILY_windows
  51 # include "c2_globals_windows.hpp"
  52 #endif
  53 #ifdef TARGET_OS_FAMILY_aix
  54 # include "c2_globals_aix.hpp"
  55 #endif
  56 #ifdef TARGET_OS_FAMILY_bsd
  57 # include "c2_globals_bsd.hpp"
  58 #endif
  59 
  60 //
  61 // Defines all globals flags used by the server compiler.
  62 //
  63 
  64 #define C2_FLAGS(develop, \
  65                  develop_pd, \
  66                  product, \
  67                  product_pd, \
  68                  diagnostic, \
  69                  diagnostic_pd, \
  70                  experimental, \
  71                  notproduct, \
  72                  range, \
  73                  constraint, \
  74                  writeable) \
  75                                                                             \
  76   develop(bool, StressLCM, false,                                           \
  77           "Randomize instruction scheduling in LCM")                        \
  78                                                                             \
  79   develop(bool, StressGCM, false,                                           \
  80           "Randomize instruction scheduling in GCM")                        \
  81                                                                             \
  82   develop(intx, OptoPrologueNops, 0,                                        \
  83           "Insert this many extra nop instructions "                        \
  84           "in the prologue of every nmethod")                               \
  85           range(0, 128)                                                     \
  86                                                                             \
  87   product_pd(intx, InteriorEntryAlignment,                                  \
  88           "Code alignment for interior entry points "                       \
  89           "in generated code (in bytes)")                                   \


 187                                                                             \
 188   develop(bool, TraceOptoParse, false,                                      \
 189           "Trace bytecode parse and control-flow merge")                    \
 190                                                                             \
 191   product_pd(intx,  LoopUnrollLimit,                                        \
 192           "Unroll loop bodies with node count less than this")              \
 193           range(0, max_jint / 4)                                            \
 194                                                                             \
 195   product_pd(intx, LoopPercentProfileLimit,                                 \
 196              "Unroll loop bodies with % node count of profile limit")       \
 197              range(10, 100)                                                 \
 198                                                                             \
 199   product(intx,  LoopMaxUnroll, 16,                                         \
 200           "Maximum number of unrolls for main loop")                        \
 201           range(0, max_jint)                                                \
 202                                                                             \
 203   product_pd(bool,  SuperWordLoopUnrollAnalysis,                            \
 204            "Map number of unrolls for main loop via "                       \
 205            "Superword Level Parallelism analysis")                          \
 206                                                                             \
 207   diagnostic_pd(bool, PostLoopMultiversioning,                              \
 208            "Multi versioned post loops to eliminate range checks")          \
 209                                                                             \
 210   notproduct(bool, TraceSuperWordLoopUnrollAnalysis, false,                 \
 211           "Trace what Superword Level Parallelism analysis applies")        \
 212                                                                             \
 213   product(intx,  LoopUnrollMin, 4,                                          \
 214           "Minimum number of unroll loop bodies before checking progress"   \
 215           "of rounds of unroll,optimize,..")                                \
 216           range(0, max_jint)                                                \
 217                                                                             \
 218   develop(intx, UnrollLimitForProfileCheck, 1,                              \
 219           "Don't use profile_trip_cnt() to restrict unrolling until "       \
 220           "unrolling would push the number of unrolled iterations above "   \
 221           "UnrollLimitForProfileCheck. A higher value allows more "         \
 222           "unrolling. Zero acts as a very large value." )                   \
 223           range(0, max_intx)                                                \
 224                                                                             \
 225   product(intx, MultiArrayExpandLimit, 6,                                   \
 226           "Maximum number of individual allocations in an inline-expanded " \
 227           "multianewarray instruction")                                     \


 748   product_pd(bool, TrapBasedRangeChecks,                                    \
 749           "Generate code for range checks that uses a cmp and trap "        \
 750           "instruction raising SIGTRAP. Used on PPC64.")                    \
 751                                                                             \
 752   product(intx, ArrayCopyLoadStoreMaxElem, 8,                               \
 753           "Maximum number of arraycopy elements inlined as a sequence of"   \
 754           "loads/stores")                                                   \
 755           range(0, max_intx)                                                \
 756                                                                             \
 757   develop(bool, StressArrayCopyMacroNode, false,                            \
 758           "Perform ArrayCopy load/store replacement during IGVN only")      \
 759                                                                             \
 760   develop(bool, RenumberLiveNodes, true,                                    \
 761           "Renumber live nodes")                                            \
 762 
 763 C2_FLAGS(DECLARE_DEVELOPER_FLAG, \
 764          DECLARE_PD_DEVELOPER_FLAG, \
 765          DECLARE_PRODUCT_FLAG, \
 766          DECLARE_PD_PRODUCT_FLAG, \
 767          DECLARE_DIAGNOSTIC_FLAG, \
 768          DECLARE_PD_DIAGNOSTIC_FLAG, \
 769          DECLARE_EXPERIMENTAL_FLAG, \
 770          DECLARE_NOTPRODUCT_FLAG, \
 771          IGNORE_RANGE, \
 772          IGNORE_CONSTRAINT, \
 773          IGNORE_WRITEABLE)
 774 
 775 #endif // SHARE_VM_OPTO_C2_GLOBALS_HPP