< prev index next >

src/share/vm/opto/vectornode.hpp

Print this page
rev 8739 : 8004073: Implement C2 Ideal node specific dump() method
Summary: add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping
Reviewed-by:

*** 1,7 **** /* ! * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 70,119 **** --- 70,143 ---- // Vector add byte class AddVBNode : public VectorNode { public: AddVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddVSNode-------------------------------------- // Vector add char/short class AddVSNode : public VectorNode { public: AddVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddVINode-------------------------------------- // Vector add int class AddVINode : public VectorNode { public: AddVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddVLNode-------------------------------------- // Vector add long class AddVLNode : public VectorNode { public: AddVLNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddVFNode-------------------------------------- // Vector add float class AddVFNode : public VectorNode { public: AddVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddVDNode-------------------------------------- // Vector add double class AddVDNode : public VectorNode { public: AddVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------ReductionNode------------------------------------ // Perform reduction of a vector class ReductionNode : public Node {
*** 121,130 **** --- 145,158 ---- ReductionNode(Node *ctrl, Node* in1, Node* in2) : Node(ctrl, in1, in2) {} static ReductionNode* make(int opc, Node *ctrl, Node* in1, Node* in2, BasicType bt); static int opcode(int opc, BasicType bt); static bool implemented(int opc, uint vlen, BasicType bt); + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------AddReductionVINode-------------------------------------- // Vector add int as a reduction class AddReductionVINode : public ReductionNode {
*** 169,234 **** --- 197,294 ---- // Vector subtract byte class SubVBNode : public VectorNode { public: SubVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------SubVSNode-------------------------------------- // Vector subtract short class SubVSNode : public VectorNode { public: SubVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------SubVINode-------------------------------------- // Vector subtract int class SubVINode : public VectorNode { public: SubVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------SubVLNode-------------------------------------- // Vector subtract long class SubVLNode : public VectorNode { public: SubVLNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------SubVFNode-------------------------------------- // Vector subtract float class SubVFNode : public VectorNode { public: SubVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------SubVDNode-------------------------------------- // Vector subtract double class SubVDNode : public VectorNode { public: SubVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------MulVSNode-------------------------------------- // Vector multiply short class MulVSNode : public VectorNode { public: MulVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------MulVINode-------------------------------------- // Vector multiply int class MulVINode : public VectorNode { public: MulVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------MulVLNode-------------------------------------- // Vector multiply long class MulVLNode : public VectorNode {
*** 241,258 **** --- 301,326 ---- // Vector multiply float class MulVFNode : public VectorNode { public: MulVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------MulVDNode-------------------------------------- // Vector multiply double class MulVDNode : public VectorNode { public: MulVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------MulReductionVINode-------------------------------------- // Vector multiply int as a reduction class MulReductionVINode : public ReductionNode {
*** 297,410 **** --- 365,534 ---- // Vector divide float class DivVFNode : public VectorNode { public: DivVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------DivVDNode-------------------------------------- // Vector Divide double class DivVDNode : public VectorNode { public: DivVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------LShiftVBNode----------------------------------- // Vector left shift bytes class LShiftVBNode : public VectorNode { public: LShiftVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------LShiftVSNode----------------------------------- // Vector left shift shorts class LShiftVSNode : public VectorNode { public: LShiftVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------LShiftVINode----------------------------------- // Vector left shift ints class LShiftVINode : public VectorNode { public: LShiftVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------LShiftVLNode----------------------------------- // Vector left shift longs class LShiftVLNode : public VectorNode { public: LShiftVLNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------RShiftVBNode----------------------------------- // Vector right arithmetic (signed) shift bytes class RShiftVBNode : public VectorNode { public: RShiftVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------RShiftVSNode----------------------------------- // Vector right arithmetic (signed) shift shorts class RShiftVSNode : public VectorNode { public: RShiftVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------RShiftVINode----------------------------------- // Vector right arithmetic (signed) shift ints class RShiftVINode : public VectorNode { public: RShiftVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------RShiftVLNode----------------------------------- // Vector right arithmetic (signed) shift longs class RShiftVLNode : public VectorNode { public: RShiftVLNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------URShiftVBNode---------------------------------- // Vector right logical (unsigned) shift bytes class URShiftVBNode : public VectorNode { public: URShiftVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------URShiftVSNode---------------------------------- // Vector right logical (unsigned) shift shorts class URShiftVSNode : public VectorNode { public: URShiftVSNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------URShiftVINode---------------------------------- // Vector right logical (unsigned) shift ints class URShiftVINode : public VectorNode { public: URShiftVINode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------URShiftVLNode---------------------------------- // Vector right logical (unsigned) shift longs class URShiftVLNode : public VectorNode { public: URShiftVLNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------LShiftCntVNode--------------------------------- // Vector left shift count class LShiftCntVNode : public VectorNode {
*** 428,453 **** --- 552,589 ---- // Vector and integer class AndVNode : public VectorNode { public: AndVNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------OrVNode--------------------------------------- // Vector or integer class OrVNode : public VectorNode { public: OrVNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //------------------------------XorVNode--------------------------------------- // Vector xor integer class XorVNode : public VectorNode { public: XorVNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {} virtual int Opcode() const; + + #ifndef PRODUCT + REL_IN_DATA_OUT_1; + #endif }; //================================= M E M O R Y =============================== //------------------------------LoadVectorNode---------------------------------
< prev index next >