src/share/vm/opto/idealKit.hpp

changeset 2726
07acc51c1d2a
parent 2665
9dc311b8473e
child 2750
6c97c830fb6f
     1.1 --- a/src/share/vm/opto/idealKit.hpp	Fri Apr 01 21:45:33 2011 -0700
     1.2 +++ b/src/share/vm/opto/idealKit.hpp	Sat Apr 02 09:49:27 2011 -0700
     1.3 @@ -108,6 +108,7 @@
     1.4    bool _delay_all_transforms;              // flag forcing all transforms to be delayed
     1.5    Node* _initial_ctrl;                     // saves initial control until variables declared
     1.6    Node* _initial_memory;                   // saves initial memory  until variables declared
     1.7 +  Node* _initial_i_o;                      // saves initial i_o  until variables declared
     1.8  
     1.9    PhaseGVN& gvn() const { return _gvn; }
    1.10    // Create a new cvstate filled with nulls
    1.11 @@ -142,17 +143,21 @@
    1.12    Node* memory(uint alias_idx);
    1.13  
    1.14   public:
    1.15 -  IdealKit(PhaseGVN &gvn, Node* control, Node* memory, bool delay_all_transforms = false, bool has_declarations = false);
    1.16 +  IdealKit(GraphKit* gkit, bool delay_all_transforms = false, bool has_declarations = false);
    1.17    ~IdealKit() {
    1.18      stop();
    1.19      drain_delay_transform();
    1.20    }
    1.21 +  void sync_kit(GraphKit* gkit);
    1.22 +
    1.23    // Control
    1.24    Node* ctrl()                          { return _cvstate->in(TypeFunc::Control); }
    1.25    void set_ctrl(Node* ctrl)             { _cvstate->set_req(TypeFunc::Control, ctrl); }
    1.26    Node* top()                           { return C->top(); }
    1.27    MergeMemNode* merged_memory()         { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); }
    1.28    void set_all_memory(Node* mem)        { _cvstate->set_req(TypeFunc::Memory, mem); }
    1.29 +  Node* i_o()                           { return _cvstate->in(TypeFunc::I_O); }
    1.30 +  void set_i_o(Node* c)                 { _cvstate->set_req(TypeFunc::I_O, c); }
    1.31    void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); }
    1.32    Node* value(IdealVariable& v)         { return _cvstate->in(first_var + v.id()); }
    1.33    void dead(IdealVariable& v)           { set(v, (Node*)NULL); }
    1.34 @@ -239,7 +244,18 @@
    1.35                        const char *leaf_name,
    1.36                        Node* parm0,
    1.37                        Node* parm1 = NULL,
    1.38 -                      Node* parm2 = NULL);
    1.39 +                      Node* parm2 = NULL,
    1.40 +                      Node* parm3 = NULL);
    1.41 +
    1.42 +  void make_leaf_call_no_fp(const TypeFunc *slow_call_type,
    1.43 +                            address slow_call,
    1.44 +                            const char *leaf_name,
    1.45 +                            const TypePtr* adr_type,
    1.46 +                            Node* parm0,
    1.47 +                            Node* parm1,
    1.48 +                            Node* parm2,
    1.49 +                            Node* parm3);
    1.50 +
    1.51  };
    1.52  
    1.53  #endif // SHARE_VM_OPTO_IDEALKIT_HPP

mercurial