diff 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
line wrap: on
line diff
--- a/src/share/vm/opto/connode.hpp	Mon Dec 01 09:38:52 2014 -0500
+++ b/src/share/vm/opto/connode.hpp	Mon Dec 01 22:27:00 2014 +0100
@@ -241,10 +241,25 @@
 //------------------------------CastIINode-------------------------------------
 // cast integer to integer (different range)
 class CastIINode: public ConstraintCastNode {
+  private:
+  // Can this node be removed post CCP or does it carry a required dependency?
+  const bool _carry_dependency;
+
+  protected:
+  virtual uint cmp( const Node &n ) const;
+  virtual uint size_of() const;
+
 public:
-  CastIINode (Node *n, const Type *t ): ConstraintCastNode(n,t) {}
+  CastIINode(Node *n, const Type *t, bool carry_dependency = false)
+    : ConstraintCastNode(n,t), _carry_dependency(carry_dependency) {}
   virtual int Opcode() const;
   virtual uint ideal_reg() const { return Op_RegI; }
+  virtual Node *Identity( PhaseTransform *phase );
+  virtual const Type *Value( PhaseTransform *phase ) const;
+  virtual Node *Ideal_DU_postCCP( PhaseCCP * );
+#ifndef PRODUCT
+  virtual void dump_spec(outputStream *st) const;
+#endif
 };
 
 //------------------------------CastPPNode-------------------------------------