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) {