Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1x/c1x_Compiler.hpp @ 1429:abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
* -Dc1x.debug=true turns on the logging proxies and lots of log output on the java side
* provide more information about types to the compiler (type hierarchy, etc)
* provide exception handler tables to the compiler
* add exception handlers to the nmethod
* correct implementation of ExceptionObject
* exception handling/unwinding entry points
* modified versions of handle/unwind exception stubs using standard calling conventions
* exception throwing
* implicit null pointer exception, implicit div by 0 exception
* arraystore/classcast/arrayindex exceptions
* checkcast implementation
* newarray, anewarray, multinewarray implementation
* correct new instance initialization
* access to java class mirrors (for ldc)
* unresolved methods
* class resolving - class patching (asssembly prototype copying)
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Tue, 31 Aug 2010 22:13:30 -0700 |
parents | 695451afc619 |
children | efba53f86c4f |
comparison
equal
deleted
inserted
replaced
1428:695451afc619 | 1429:abc670a709dc |
---|---|
24 | 24 |
25 class C1XCompiler : public AbstractCompiler { | 25 class C1XCompiler : public AbstractCompiler { |
26 | 26 |
27 private: | 27 private: |
28 | 28 |
29 bool _initialized; | 29 bool _initialized; |
30 | |
31 static C1XCompiler* _instance; | |
30 | 32 |
31 public: | 33 public: |
32 | 34 |
33 C1XCompiler() { _initialized = false; } | 35 C1XCompiler(); |
36 | |
37 static C1XCompiler* instance() { return _instance; } | |
38 | |
34 | 39 |
35 virtual const char* name() { return "C1X"; } | 40 virtual const char* name() { return "C1X"; } |
36 | 41 |
37 // Native / OSR not supported | 42 // Native / OSR not supported |
38 virtual bool supports_native() { return false; } | 43 virtual bool supports_native() { return false; } |
52 virtual void print_timers(); | 57 virtual void print_timers(); |
53 | 58 |
54 static oop get_RiType(ciType *klass, klassOop accessor, TRAPS); | 59 static oop get_RiType(ciType *klass, klassOop accessor, TRAPS); |
55 static oop get_RiField(ciField *ciField, TRAPS); | 60 static oop get_RiField(ciField *ciField, TRAPS); |
56 | 61 |
57 /* | 62 static oop createHotSpotTypeResolved(KlassHandle klass, Handle name, TRAPS); |
58 static oop get_RiMethod(ciMethod *ciMethod, TRAPS); | 63 |
59 static oop get_RiType(klassOop klass, TRAPS); | |
60 static oop get_RiMethod(methodOop method, TRAPS); | |
61 static oop get_unresolved_RiType(oop klass, klassOop accessingType, TRAPS); | |
62 static oop get_RiConstantPool(constantPoolOop cpOop, TRAPS); | |
63 */ | |
64 }; | 64 }; |
65 | 65 |
66 // Tracing macros | 66 // Tracing macros |
67 | 67 |
68 #define IF_TRACE_C1X_1 if (TraceC1X >= 1) | 68 #define IF_TRACE_C1X_1 if (TraceC1X >= 1) |
69 #define IF_TRACE_C1X_2 if (TraceC1X >= 2) | 69 #define IF_TRACE_C1X_2 if (TraceC1X >= 2) |
70 #define IF_TRACE_C1X_3 if (TraceC1X >= 3) | 70 #define IF_TRACE_C1X_3 if (TraceC1X >= 3) |
71 #define IF_TRACE_C1X_4 if (TraceC1X >= 4) | 71 #define IF_TRACE_C1X_4 if (TraceC1X >= 4) |
72 #define IF_TRACE_C1X_5 if (TraceC1X >= 5) | 72 #define IF_TRACE_C1X_5 if (TraceC1X >= 5) |
73 | 73 |
74 #define TRACE_C1X_1 if (TraceC1X >= 1) tty->print("TraceC1X-1: "); if (TraceC1X >= 1) tty->print_cr | 74 // using commas to keep one-instruction semantics |
75 #define TRACE_C1X_2 if (TraceC1X >= 2) tty->print(" TraceC1X-2: "); if (TraceC1X >= 2) tty->print_cr | 75 #define TRACE_C1X_1 if (TraceC1X >= 1 && (tty->print("TraceC1X-1: "), true)) tty->print_cr |
76 #define TRACE_C1X_3 if (TraceC1X >= 3) tty->print(" TraceC1X-3: "); if (TraceC1X >= 3) tty->print_cr | 76 #define TRACE_C1X_2 if (TraceC1X >= 2 && (tty->print(" TraceC1X-2: "), true)) tty->print_cr |
77 #define TRACE_C1X_4 if (TraceC1X >= 4) tty->print(" TraceC1X-4: "); if (TraceC1X >= 4) tty->print_cr | 77 #define TRACE_C1X_3 if (TraceC1X >= 3 && (tty->print(" TraceC1X-3: "), true)) tty->print_cr |
78 #define TRACE_C1X_5 if (TraceC1X >= 5) tty->print(" TraceC1X-5: "); if (TraceC1X >= 5) tty->print_cr | 78 #define TRACE_C1X_4 if (TraceC1X >= 4 && (tty->print(" TraceC1X-4: "), true)) tty->print_cr |
79 #define TRACE_C1X_5 if (TraceC1X >= 5 && (tty->print(" TraceC1X-5: "), true)) tty->print_cr | |
79 | 80 |
80 | 81 |
81 | 82 |