/* file "rd_test/suif_pass.h" */

/*
    Copyright (c) 2000-2001 The President and Fellows of Harvard College

    All rights reserved.

    This software is provided under the terms described in
    the "machine/copyright.h" include file.
*/

#ifndef RD_TEST_SUIF_PASS_H
#define RD_TEST_SUIF_PASS_H

#include <machine/copyright.h>

#pragma interface "rd_test/suif_pass.h"

#include <rd_test/rd_test.h>

class RdTestSuifPass : public PipelinablePass {
  protected:
    RdTest rd_test;

    // command-line arguments
    int debug_arg;		// debugging message verbosity
    String file_name;		// input file name

  public:
    RdTestSuifPass(SuifEnv* suif_env, const IdString &name = "rd_test");

    void initialize();

    // We only need a single copy of this pass, since we should never
    // need more than one rd_test pass.
    Module* clone() const { return (Module*)this; }

    bool parse_command_line(TokenStream* command_line_stream);

    void do_file_set_block(FileSetBlock*);
    void do_file_block(FileBlock*);
    void do_procedure_definition(ProcDef*);
};

extern "C" void init_rd_test(SuifEnv *suif_env);


#endif /* RD_TEST_SUIF_PASS_H */
