Mercurial > hg > truffle
comparison src/share/vm/opto/library_call.cpp @ 12956:3213ba4d3dff
8024069: replace_in_map() should operate on parent maps
Summary: type information gets lost because replace_in_map() doesn't update parent maps
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Sat, 19 Oct 2013 12:16:43 +0200 |
parents | 29bdcf12457c |
children | b2ee5dc63353 |
comparison
equal
deleted
inserted
replaced
12955:252d541466ea | 12956:3213ba4d3dff |
---|---|
61 } | 61 } |
62 virtual bool is_intrinsic() const { return true; } | 62 virtual bool is_intrinsic() const { return true; } |
63 virtual bool is_virtual() const { return _is_virtual; } | 63 virtual bool is_virtual() const { return _is_virtual; } |
64 virtual bool is_predicted() const { return _is_predicted; } | 64 virtual bool is_predicted() const { return _is_predicted; } |
65 virtual bool does_virtual_dispatch() const { return _does_virtual_dispatch; } | 65 virtual bool does_virtual_dispatch() const { return _does_virtual_dispatch; } |
66 virtual JVMState* generate(JVMState* jvms); | 66 virtual JVMState* generate(JVMState* jvms, Parse* parent_parser); |
67 virtual Node* generate_predicate(JVMState* jvms); | 67 virtual Node* generate_predicate(JVMState* jvms); |
68 vmIntrinsics::ID intrinsic_id() const { return _intrinsic_id; } | 68 vmIntrinsics::ID intrinsic_id() const { return _intrinsic_id; } |
69 }; | 69 }; |
70 | 70 |
71 | 71 |
554 // Initialize this file's data structures, for each Compile instance. | 554 // Initialize this file's data structures, for each Compile instance. |
555 void Compile::register_library_intrinsics() { | 555 void Compile::register_library_intrinsics() { |
556 // Nothing to do here. | 556 // Nothing to do here. |
557 } | 557 } |
558 | 558 |
559 JVMState* LibraryIntrinsic::generate(JVMState* jvms) { | 559 JVMState* LibraryIntrinsic::generate(JVMState* jvms, Parse* parent_parser) { |
560 LibraryCallKit kit(jvms, this); | 560 LibraryCallKit kit(jvms, this); |
561 Compile* C = kit.C; | 561 Compile* C = kit.C; |
562 int nodes = C->unique(); | 562 int nodes = C->unique(); |
563 #ifndef PRODUCT | 563 #ifndef PRODUCT |
564 if ((C->print_intrinsics() || C->print_inlining()) && Verbose) { | 564 if ((C->print_intrinsics() || C->print_inlining()) && Verbose) { |