// $Id: optFuncDefBlock.java,v 1.7 2000/04/10 04:14:29 msato Exp $
// $RWC_Release: Omni-1.6 $
// $RWC_Copyright:
//  Omni Compiler Software Version 1.5-1.6
//  Copyright (C) 2002 PC Cluster Consortium
//  
//  This software is free software; you can redistribute it and/or modify
//  it under the terms of the GNU Lesser General Public License version
//  2.1 published by the Free Software Foundation.
//  
//  Omni Compiler Software Version 1.0-1.4
//  Copyright (C) 1999, 2000, 2001.
//   Tsukuba Research Center, Real World Computing Partnership, Japan.
//  
//  Please check the Copyright and License information in the files named
//  COPYRIGHT and LICENSE under the top  directory of the Omni Compiler
//  Software release kit.
//  
//  
//  $
package exc.flow;

import exc.object.*;
import exc.block.*;
import java.util.*;

//
// Function Definition Block for Optimizer
//   with temporary variable management
//   with control flow graph
//
public class optFuncDefBlock extends optBodyEnv {
  FuncDefBlock fd;

  // in C, expose AsgExpr 
  protected boolean enableExposeAsgExpr = true;

  public optFuncDefBlock(FuncDefBlock fd){
    super(fd.getBlock().getBody().getHead().getBody());
    this.fd = fd;
    init();
  }

  public optFuncDefBlock(FuncDefBlock fd,boolean flag){
    super(fd.getBlock().getBody().getHead().getBody());
    this.fd = fd;
    enableExposeAsgExpr = flag;
    init();
  }

  protected void init(){
    if(enableExposeAsgExpr) exposeAsgExpr();
    makeCFG();
  }
}

