diff src/share/vm/opto/chaitin.hpp @ 4137:04b9a2566eec

Merge with hsx23/hotspot.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 17 Dec 2011 21:40:27 +0100
parents f6f3bb0ee072
children 5da7201222d5
line wrap: on
line diff
--- a/src/share/vm/opto/chaitin.hpp	Sat Dec 17 20:50:09 2011 +0100
+++ b/src/share/vm/opto/chaitin.hpp	Sat Dec 17 21:40:27 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@
 //------------------------------LRG--------------------------------------------
 // Live-RanGe structure.
 class LRG : public ResourceObj {
+  friend class VMStructs;
 public:
   enum { SPILL_REG=29999 };     // Register number of a spilled LRG
 
@@ -181,6 +182,7 @@
 // Map Node indices to Live RanGe indices.
 // Array lookup in the optimized case.
 class LRG_List : public ResourceObj {
+  friend class VMStructs;
   uint _cnt, _max;
   uint* _lidxs;
   ReallocMark _nesting;         // assertion check for reallocations
@@ -211,6 +213,7 @@
 // abstract!  It needs abstraction so I can fiddle with the implementation to
 // get even more speed.
 class PhaseIFG : public Phase {
+  friend class VMStructs;
   // Current implementation: a triangular adjacency list.
 
   // Array of adjacency-lists, indexed by live-range number
@@ -294,6 +297,7 @@
 //------------------------------Chaitin----------------------------------------
 // Briggs-Chaitin style allocation, mostly.
 class PhaseChaitin : public PhaseRegAlloc {
+  friend class VMStructs;
 
   int _trip_cnt;
   int _alternate;
@@ -482,6 +486,7 @@
   }
 
   int yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd );
+  int yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd );
   int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs );
   int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd );
   bool may_be_copy_of_callee( Node *def ) const;