< prev index next >
src/share/vm/ci/ciMethod.hpp
Print this page
rev 7960 : 8073607: add trace events for inlining
Reviewed-by: kvn, fzhinkin
@@ -30,17 +30,18 @@
#include "ci/ciObject.hpp"
#include "ci/ciSignature.hpp"
#include "compiler/methodLiveness.hpp"
#include "prims/methodHandles.hpp"
#include "utilities/bitMap.hpp"
+#include "trace/tracing.hpp"
class ciMethodBlocks;
class MethodLiveness;
class BitMap;
class Arena;
class BCEscapeAnalyzer;
-
+class InlineTree;
// ciMethod
//
// This class represents a Method* in the HotSpot virtual
// machine.
@@ -50,10 +51,11 @@
friend class ciEnv;
friend class ciExceptionHandlerStream;
friend class ciBytecodeStream;
friend class ciMethodHandle;
friend class ciReplay;
+ friend class InlineTree;
private:
// General method information.
ciFlags _flags;
ciSymbol* _name;
@@ -93,16 +95,10 @@
#endif
ciMethod(methodHandle h_m, ciInstanceKlass* holder);
ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
- Method* get_Method() const {
- Method* m = (Method*)_metadata;
- assert(m != NULL, "illegal use of unloaded method");
- return m;
- }
-
oop loader() const { return _holder->loader(); }
const char* type_string() { return "ciMethod"; }
void print_impl(outputStream* st);
@@ -156,10 +152,15 @@
}
return arg_size;
}
}
+ Method* get_Method() const {
+ Method* m = (Method*)_metadata;
+ assert(m != NULL, "illegal use of unloaded method");
+ return m;
+ }
// Method code and related information.
address code() { if (_code == NULL) load_code(); return _code; }
int code_size() const { check_is_loaded(); return _code_size; }
int max_stack() const { check_is_loaded(); return _max_stack; }
@@ -337,8 +338,12 @@
void print_codes_on(int from, int to, outputStream* st);
// Print the name of this method in various incarnations.
void print_name(outputStream* st = tty);
void print_short_name(outputStream* st = tty);
+
+#if INCLUDE_TRACE
+ TraceStructCiMethod to_trace_struct() const;
+#endif
};
#endif // SHARE_VM_CI_CIMETHOD_HPP
< prev index next >