< prev index next >

src/share/vm/opto/valuetypenode.hpp

Print this page




  77   Node* store_to_memory(GraphKit* kit);
  78   // Store the value type to a flattened value type field or array
  79   void store(GraphKit* kit, Node* obj, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0) const;
  80   // Store the field values to memory
  81   void store_values(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0) const;
  82 
  83   // Get oop for heap allocated value type (may be TypePtr::NULL_PTR)
  84   Node* get_oop() const    { return in(Oop); }
  85   void  set_oop(Node* oop) { set_req(Oop, oop); }
  86 
  87   // Value type fields
  88   uint          field_count() const { return req() - Values; }
  89   Node*         field_value(uint index) const;
  90   Node*         field_value_by_offset(int offset, bool recursive = false) const;
  91   void      set_field_value(uint index, Node* value);
  92   int           field_offset(uint index) const;
  93   ciType*       field_type(uint index) const;
  94 
  95   // Replace ValueTypeNodes in debug info at safepoints with SafePointScalarObjectNodes
  96   void make_scalar_in_safepoints(Compile* C);
  97   uint set_arguments_for_java_call(CallJavaNode* call, int base_input, const GraphKit& kit, ciValueKlass* base_vk = NULL, int base_offset = 0);




  98   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
  99   virtual int Opcode() const;
 100 
 101 #ifndef PRODUCT
 102   virtual void dump_spec(outputStream* st) const;
 103 #endif
 104 };
 105 
 106 #endif // SHARE_VM_OPTO_VALUETYPENODE_HPP


  77   Node* store_to_memory(GraphKit* kit);
  78   // Store the value type to a flattened value type field or array
  79   void store(GraphKit* kit, Node* obj, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0) const;
  80   // Store the field values to memory
  81   void store_values(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0) const;
  82 
  83   // Get oop for heap allocated value type (may be TypePtr::NULL_PTR)
  84   Node* get_oop() const    { return in(Oop); }
  85   void  set_oop(Node* oop) { set_req(Oop, oop); }
  86 
  87   // Value type fields
  88   uint          field_count() const { return req() - Values; }
  89   Node*         field_value(uint index) const;
  90   Node*         field_value_by_offset(int offset, bool recursive = false) const;
  91   void      set_field_value(uint index, Node* value);
  92   int           field_offset(uint index) const;
  93   ciType*       field_type(uint index) const;
  94 
  95   // Replace ValueTypeNodes in debug info at safepoints with SafePointScalarObjectNodes
  96   void make_scalar_in_safepoints(Compile* C);
  97   void pass_klass(Node* n, uint pos, const GraphKit& kit);
  98   uint pass_fields(Node* call, int base_input, const GraphKit& kit, ciValueKlass* base_vk = NULL, int base_offset = 0);
  99   void replace_call_results(Node* call, Compile* C);
 100 
 101 
 102   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
 103   virtual int Opcode() const;
 104 
 105 #ifndef PRODUCT
 106   virtual void dump_spec(outputStream* st) const;
 107 #endif
 108 };
 109 
 110 #endif // SHARE_VM_OPTO_VALUETYPENODE_HPP
< prev index next >