49 cflags(DisableIntrinsic, ccstrlist, DisableIntrinsic, DisableIntrinsic)
50
51 #ifdef COMPILER1
52 #define compilerdirectives_c1_flags(cflags)
53 #else
54 #define compilerdirectives_c1_flags(cflags)
55 #endif
56
57 #ifdef COMPILER2
58 #define compilerdirectives_c2_flags(cflags) \
59 cflags(BlockLayoutByFrequency, bool, BlockLayoutByFrequency, BlockLayoutByFrequency) \
60 cflags(PrintOptoAssembly, bool, PrintOptoAssembly, PrintOptoAssembly) \
61 cflags(PrintIntrinsics, bool, PrintIntrinsics, PrintIntrinsics) \
62 NOT_PRODUCT(cflags(TraceOptoPipelining, bool, TraceOptoPipelining, TraceOptoPipelining)) \
63 NOT_PRODUCT(cflags(TraceOptoOutput, bool, TraceOptoOutput, TraceOptoOutput)) \
64 cflags(TraceSpilling, bool, TraceSpilling, TraceSpilling) \
65 cflags(Vectorize, bool, false, Vectorize) \
66 cflags(VectorizeDebug, uintx, 0, VectorizeDebug) \
67 cflags(CloneMapDebug, bool, false, CloneMapDebug) \
68 cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel) \
69 cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit)
70 #else
71 #define compilerdirectives_c2_flags(cflags)
72 #endif
73
74 class CompilerDirectives;
75 class DirectiveSet;
76
77 class DirectivesStack : AllStatic {
78 private:
79 static CompilerDirectives* _top;
80 static CompilerDirectives* _bottom;
81 static int _depth;
82
83 static void pop_inner(); // no lock version of pop
84 public:
85 static void init();
86 static DirectiveSet* getMatchingDirective(const methodHandle& mh, AbstractCompiler* comp);
87 static DirectiveSet* getDefaultDirective(AbstractCompiler* comp);
88 static void push(CompilerDirectives* directive);
89 static void pop(int count);
|
49 cflags(DisableIntrinsic, ccstrlist, DisableIntrinsic, DisableIntrinsic)
50
51 #ifdef COMPILER1
52 #define compilerdirectives_c1_flags(cflags)
53 #else
54 #define compilerdirectives_c1_flags(cflags)
55 #endif
56
57 #ifdef COMPILER2
58 #define compilerdirectives_c2_flags(cflags) \
59 cflags(BlockLayoutByFrequency, bool, BlockLayoutByFrequency, BlockLayoutByFrequency) \
60 cflags(PrintOptoAssembly, bool, PrintOptoAssembly, PrintOptoAssembly) \
61 cflags(PrintIntrinsics, bool, PrintIntrinsics, PrintIntrinsics) \
62 NOT_PRODUCT(cflags(TraceOptoPipelining, bool, TraceOptoPipelining, TraceOptoPipelining)) \
63 NOT_PRODUCT(cflags(TraceOptoOutput, bool, TraceOptoOutput, TraceOptoOutput)) \
64 cflags(TraceSpilling, bool, TraceSpilling, TraceSpilling) \
65 cflags(Vectorize, bool, false, Vectorize) \
66 cflags(VectorizeDebug, uintx, 0, VectorizeDebug) \
67 cflags(CloneMapDebug, bool, false, CloneMapDebug) \
68 cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel) \
69 cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit) \
70 ZGC_ONLY(cflags(ZOptimizeLoadBarriers, bool, ZOptimizeLoadBarriers, ZOptimizeLoadBarriers))
71 #else
72 #define compilerdirectives_c2_flags(cflags)
73 #endif
74
75 class CompilerDirectives;
76 class DirectiveSet;
77
78 class DirectivesStack : AllStatic {
79 private:
80 static CompilerDirectives* _top;
81 static CompilerDirectives* _bottom;
82 static int _depth;
83
84 static void pop_inner(); // no lock version of pop
85 public:
86 static void init();
87 static DirectiveSet* getMatchingDirective(const methodHandle& mh, AbstractCompiler* comp);
88 static DirectiveSet* getDefaultDirective(AbstractCompiler* comp);
89 static void push(CompilerDirectives* directive);
90 static void pop(int count);
|