Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-5067347

dead code/loops checks and elimination.

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 6
    • 1.5.1
    • hotspot
    • None
    • b51
    • sparc
    • solaris_9

      I had to fix a lot of bugs related to dead loops checks missing.
      When we create a new node during transformation (call Ideal() methods)
      it does not have associated type. In the case of a dead loop
      (when a node references itself directly or through other nodes
      but not through region or phi nodes) we could try to transform
      this new node again (call Ideal() in the loop in transform_old()).
      And we hit assert of SEGV (in product version) when we try to
      access the node's type.

      One solution is to catch the dead loop situation and stop
      transformations. This is what I did before. But each time I missed
      some cases. We can try to unify somehow this.

      Second suggestion is the aggressive dead code elimination.
      It should be trusted (no dead code escapes it) otherwise
      we should keep first solution.

      Third one is to assign a bottom type for new nodes created
      during transformation to avoid the assert. This one is just
      to hide the problem.

            kvn Vladimir Kozlov
            kvn Vladimir Kozlov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: