comparison src/share/vm/opto/connode.hpp @ 20680:5b8e0f84f00f

8054478: C2: Incorrectly compiled char[] array access crashes JVM Summary: dead backbranch in main loop results in erroneous array access Reviewed-by: kvn, iveresov
author roland
date Mon, 01 Dec 2014 22:27:00 +0100
parents 606acabe7b5c
children 7848fc12602b
comparison
equal deleted inserted replaced
20678:97f4214e9a70 20680:5b8e0f84f00f
239 }; 239 };
240 240
241 //------------------------------CastIINode------------------------------------- 241 //------------------------------CastIINode-------------------------------------
242 // cast integer to integer (different range) 242 // cast integer to integer (different range)
243 class CastIINode: public ConstraintCastNode { 243 class CastIINode: public ConstraintCastNode {
244 public: 244 private:
245 CastIINode (Node *n, const Type *t ): ConstraintCastNode(n,t) {} 245 // Can this node be removed post CCP or does it carry a required dependency?
246 const bool _carry_dependency;
247
248 protected:
249 virtual uint cmp( const Node &n ) const;
250 virtual uint size_of() const;
251
252 public:
253 CastIINode(Node *n, const Type *t, bool carry_dependency = false)
254 : ConstraintCastNode(n,t), _carry_dependency(carry_dependency) {}
246 virtual int Opcode() const; 255 virtual int Opcode() const;
247 virtual uint ideal_reg() const { return Op_RegI; } 256 virtual uint ideal_reg() const { return Op_RegI; }
257 virtual Node *Identity( PhaseTransform *phase );
258 virtual const Type *Value( PhaseTransform *phase ) const;
259 virtual Node *Ideal_DU_postCCP( PhaseCCP * );
260 #ifndef PRODUCT
261 virtual void dump_spec(outputStream *st) const;
262 #endif
248 }; 263 };
249 264
250 //------------------------------CastPPNode------------------------------------- 265 //------------------------------CastPPNode-------------------------------------
251 // cast pointer to pointer (different type) 266 // cast pointer to pointer (different type)
252 class CastPPNode: public ConstraintCastNode { 267 class CastPPNode: public ConstraintCastNode {