src/share/vm/opto/machnode.cpp

changeset 7161
fc2c88ea11a9
parent 6487
15120a36272d
child 7535
7ae4e26cb1e0
child 9513
e044997c2eda
equal deleted inserted replaced
7151:bddcb33dadf4 7161:fc2c88ea11a9
1 /* 1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
637 if (_cnt != COUNT_UNKNOWN) st->print(" C=%f",_cnt); 637 if (_cnt != COUNT_UNKNOWN) st->print(" C=%f",_cnt);
638 if (jvms() != NULL) jvms()->dump_spec(st); 638 if (jvms() != NULL) jvms()->dump_spec(st);
639 } 639 }
640 #endif 640 #endif
641 641
642
643 bool MachCallNode::return_value_is_used() const { 642 bool MachCallNode::return_value_is_used() const {
644 if (tf()->range()->cnt() == TypeFunc::Parms) { 643 if (tf()->range()->cnt() == TypeFunc::Parms) {
645 // void return 644 // void return
646 return false; 645 return false;
647 } 646 }
655 } 654 }
656 } 655 }
657 return false; 656 return false;
658 } 657 }
659 658
659 // Similar to cousin class CallNode::returns_pointer
660 // Because this is used in deoptimization, we want the type info, not the data
661 // flow info; the interpreter will "use" things that are dead to the optimizer.
662 bool MachCallNode::returns_pointer() const {
663 const TypeTuple *r = tf()->range();
664 return (r->cnt() > TypeFunc::Parms &&
665 r->field_at(TypeFunc::Parms)->isa_ptr());
666 }
660 667
661 //------------------------------Registers-------------------------------------- 668 //------------------------------Registers--------------------------------------
662 const RegMask &MachCallNode::in_RegMask(uint idx) const { 669 const RegMask &MachCallNode::in_RegMask(uint idx) const {
663 // Values in the domain use the users calling convention, embodied in the 670 // Values in the domain use the users calling convention, embodied in the
664 // _in_rms array of RegMasks. 671 // _in_rms array of RegMasks.

mercurial