Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
driver.cxx File Reference
#include <sys/types.h>
#include <elf.h>
#include <cmplrs/rcodes.h>
#include <dirent.h>
#include <iostream>
#include <sys/param.h>
#include "defs.h"
#include "dso.h"
#include "errors.h"
#include "err_host.tab"
#include "erglob.h"
#include "erauxdesc.h"
#include "mempool.h"
#include "phase.h"
#include "be_util.h"
#include "wn.h"
#include "driver_util.h"
#include "timing.h"
#include "glob.h"
#include "stab.h"
#include "pu_info.h"
#include "ir_bread.h"
#include "ir_bwrite.h"
#include "config.h"
#include "config_opt.h"
#include "config_list.h"
#include "config_lno.h"
#include "file_util.h"
#include "xstats.h"
#include "data_layout.h"
#include "opt_alias_interface.h"
#include "wn_lower.h"
#include "ori.h"
#include "w2c_driver.h"
#include "w2f_driver.h"
#include "anl_driver.h"
#include "region_util.h"
#include "region_main.h"
#include "tracing.h"
#include "ir_reader.h"
#include "dwarf_DST.h"
#include "fb_whirl.h"
#include "iter.h"
#include "dra_export.h"
#include "ti_init.h"
#include "omp_lower.h"
#include "cxx_memory.h"
#include "options_stack.h"
#include "be_symtab.h"
#include "prompf.h"
#include "wb_omp.h"
#include "wb_lwr.h"
#include "wb_anl.h"
#include "wn_instrument.h"
#include "mem_ctr.h"
#include "upc_symtab_utils.h"
#include "ipl_driver.h"
#include "w2c_weak.h"
#include "w2f_weak.h"

Go to the source code of this file.

Defines

#define DSOext   ".so"
#define FEEDBACK_PATH_MAXLEN   1024

Functions

void Initialize_Targ_Info (void)
void Prompf_Emit_Whirl_to_Source (PU_Info *current_pu, WN *func_nd)
static void load_components (INT argc, char **argv)
static void Phase_Init (void)
static void Phase_Fini (void)
char * Get_Orig_PU_Name (PU_Info *current_pu)
static void Save_Cur_PU_Name (char *name, INT rid_id)
static WNAdjust_Opt_Level (PU_Info *current_pu, WN *pu, char *pu_name)
static void Post_LNO_Processing (PU_Info *current_pu, WN *pu)
void Process_Fill_Align_Pragmas (WN *func_wn)
void Rewrite_Pragmas_On_Structs (WN *block_wn, WN *wn)
static void Update_EHRegion_Inito_Used (WN *wn)
static void Update_EHRegion_Inito (WN *pu)
static void Backend_Processing (PU_Info *current_pu, WN *pu)
static WNPreprocess_PU (PU_Info *current_pu)
static void Postprocess_PU (PU_Info *current_pu)
static void Preorder_Process_PUs (PU_Info *current_pu)
static void Print_Tlog_Header (INT argc, char **argv)
void be_debug (void)
void RiceWhirl2f (INT *argc, char ***argv)
INT main (INT argc, char **argv)
static BOOL Has_Extension__1 (char *name, char *ext)

Variables

static INT ecount = 0
static BOOL need_wopt_output = FALSE
static BOOL need_lno_output = FALSE
static BOOL need_ipl_output = FALSE
static Output_Fileir_output = 0
static OPTIONS_STACKOptions_Stack
static BOOL reset_opt_level = FALSE
static struct ALIAS_MANAGER * alias_mgr = NULL
static BOOL Run_Distr_Array = FALSE
BOOL Run_MemCtr = FALSE
static BOOL Saved_run_prompf = FALSE
static BOOL Saved_run_w2c = FALSE
static BOOL Saved_run_w2f = FALSE
static BOOL Saved_run_w2fc_early = FALSE
WN_MAP Prompf_Id_Map
static BOOL wopt_loaded = FALSE
BOOL Prompf_anl_loaded
BOOL Purple_loaded
BOOL Whirl2f_loaded
BOOL Whirl2c_loaded
void * Current_Dep_Graph
FILE * DFile = stderr
int s_size = 16
int p_size = 16
int r_size = 4
int m_size = 4
static char * libpath [3]
static const char *const errstring = "%s: can't allocate memory\n"

Define Documentation

#define DSOext   ".so"

Definition at line 114 of file driver.cxx.

Referenced by load_components().

#define FEEDBACK_PATH_MAXLEN   1024

Definition at line 903 of file driver.cxx.


Function Documentation

void be_debug ( void  )

Definition at line 908 of file driver.cxx.

static BOOL Has_Extension__1 ( char *  name,
char *  ext 
) [static]

Definition at line 1135 of file driver.cxx.

References FALSE.

Referenced by RiceWhirl2f().

void Initialize_Targ_Info ( void  )

Definition at line 42 of file driver_targ.cxx.

References ABI_I32, ABI_I64, FALSE, FmtAssert, Isa_Name(), Targ_Name(), Targ_Path, Target, Target_ABI, Target_ISA, TARGET_ISA_I1, TARGET_ITANIUM, and TI_Initialize().

Here is the call graph for this function:

INT main ( INT  argc,
char **  argv 
)

Definition at line 917 of file driver.cxx.

References be_debug(), Be_scope_tab, BE_SCOPE::be_st_tab, BE_symtab_alloc_scope_level(), BE_symtab_free_be_scopes(), BE_symtab_initialize_be_scopes(), Cleanup_Files(), RELATED_SEGMENTED_ARRAY< T, block_size >::Clear(), Close_Output_Info(), Compile_Upc, Configure(), Configure_Source(), Cur_PU_Name, CXX_NEW, DBar, EC_File_Olimit_Exceeded, ecount, Emit_Global_Data, EP_BE, ErrMsg(), ERROR_LINE_UNKNOWN, exit(), FALSE, File_info, FILE_INFO_ipa(), Find_Upc_Vars(), Finish_Compilation_Timing(), fprintf(), Get_Error_Count(), Get_Trace(), Global_File_Name, GLOBAL_SYMTAB, Had_Internal_Error(), Handle_Signals(), Inhibit_EH_opt, Init_Error_Handler(), Init_Operator_To_Opcode_Table(), Initialize_Special_Global_Symbols(), Initialize_Stats(), Initialize_Symbol_Tables(), Instrumentation_Enabled, Instrumentation_Phase_Num, Ipl_Extra_Output(), Irb_File, Irb_File_Name, Is_True, List_All_Options, List_Compile_Options(), List_Enabled, load_components(), Lst_File, Malloc_Mem_Pool, Max_Src_Olimit, MEM_Initialize(), MEM_POOL_Pop, MEM_POOL_Push, MEM_src_nz_pool, MEM_src_pool, MEM_Trace(), MEM_Tracing_Enable(), need_ipl_output, need_lno_output, need_wopt_output, New_Scope(), NULL, Olimit, Olimit_opt, Open_Global_Input(), Open_Input_Info(), Open_Local_Input(), Opt_Level, Phase_Fini(), Phase_Init(), Preconfigure(), Preorder_Process_PUs(), Prepare_Listing_File(), Prepare_Source(), Print_Tlog_Header(), Print_Total_Stats(), Process_Command_Line(), PROFILE_PHASE_IPA_CUTOFF, PROFILE_PHASE_NONE, PU_Info_next, OPTIONS_STACK::Push_Current_Options(), RC_INTERNAL_ERROR, RC_NORECOVER_USER_ERROR, RC_OKAY, Read_Global_Data, Read_Global_Info(), Reset_Timers(), RiceWhirl2f(), Run_autopar, Run_cg, Run_Distr_Array, Run_lno, Run_preopt, Run_w2c, Run_wopt, Scope_tab, Set_Error_Descriptor(), Set_Error_File(), Set_Error_Line(), Set_Error_Phase(), Set_Error_Source(), Show_OPT_Warnings, Show_Progress, Src_File_Name, SCOPE::st_tab, Start_Timer(), Stop_Timer(), T_BE_Comp, T_ReadIR_Comp, Terminate(), TFile, Tim_File, TKIND_ALLOC, Tlog_File, TP_MISC, TRUE, Upc_Lower_SymbolTable(), and Write_Global_Info().

static void Phase_Fini ( void  ) [static]

Definition at line 436 of file driver.cxx.

References Anl_Fini(), Anl_Needs_Whirl2f(), CURRENT_SYMTAB, GLOBAL_SYMTAB, Run_prompf, Run_w2f, Verify_SYMTAB(), and W2F_Outfile_Fini().

Referenced by main().

Here is the call graph for this function:

static void Print_Tlog_Header ( INT  argc,
char **  argv 
) [static]

Definition at line 890 of file driver.cxx.

References fprintf(), Get_Trace(), Tlog_File, TP_PTRACE1, and TP_PTRACE1_NOHDR.

Referenced by main().

Here is the call graph for this function:

void RiceWhirl2f ( INT argc,
char ***  argv 
)

Definition at line 1156 of file driver.cxx.

References errstring, exit(), FALSE, fprintf(), getenv(), Has_Extension__1(), Last_Pathname_Component(), len, libpath, NULL, path, PATH_MAX, RC_NORECOVER_USER_ERROR, Run_w2f, strcpy, and TRUE.

Referenced by main().

Here is the call graph for this function:

static void Save_Cur_PU_Name ( char *  name,
INT  rid_id 
) [static]

Definition at line 479 of file driver.cxx.

References Cur_PU_Name, MEM_pu_nz_pool, NULL, strcpy, and TYPE_MEM_POOL_ALLOC_N.

Referenced by Preprocess_PU().

static void Update_EHRegion_Inito ( WN pu) [static]

Definition at line 632 of file driver.cxx.

References CURRENT_SYMTAB, FOREACH_INITO, INITO_st(), SCLASS_EH_REGION, SCLASS_EH_REGION_SUPP, Set_ST_is_not_used(), ST_sclass(), and Update_EHRegion_Inito_Used().

Here is the call graph for this function:

static void Update_EHRegion_Inito_Used ( WN wn) [static]

Definition at line 599 of file driver.cxx.

References Clear_ST_is_not_used(), INITO_st(), OPR_BLOCK, OPR_REGION, WN_ereg_supp(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_operator().

Referenced by Update_EHRegion_Inito().

Here is the call graph for this function:


Variable Documentation

struct ALIAS_MANAGER* alias_mgr = NULL [static]

Definition at line 296 of file driver.cxx.

Referenced by Adjust_Opt_Level().

FILE* DFile = stderr

Definition at line 318 of file driver.cxx.

INT ecount = 0 [static]

Definition at line 286 of file driver.cxx.

Referenced by main().

const char* const errstring = "%s: can't allocate memory\n" [static]

Definition at line 1154 of file driver.cxx.

Referenced by RiceWhirl2f().

Output_File* ir_output = 0 [static]

Definition at line 290 of file driver.cxx.

char* libpath[3] [static]
Initial value:
 
{"LD_LIBRARY_PATH",
 "LD_LIBRARYN32_PATH",
 "LD_LIBRARY64_PATH"
}

Definition at line 1149 of file driver.cxx.

Referenced by RiceWhirl2f().

int m_size = 4

Definition at line 321 of file driver.cxx.

Definition at line 289 of file driver.cxx.

Referenced by main(), and Phase_Init().

Definition at line 288 of file driver.cxx.

Referenced by main(), Phase_Init(), and Post_LNO_Processing().

Definition at line 287 of file driver.cxx.

Referenced by main(), and Phase_Init().

Definition at line 293 of file driver.cxx.

int p_size = 16

Definition at line 321 of file driver.cxx.

Definition at line 74 of file cleanup.cxx.

Referenced by Cleanup_Files(), and load_components().

Definition at line 769 of file config.cxx.

Definition at line 75 of file cleanup.cxx.

Referenced by load_components().

int r_size = 4

Definition at line 321 of file driver.cxx.

Definition at line 295 of file driver.cxx.

Referenced by Adjust_Opt_Level(), and Preorder_Process_PUs().

Definition at line 298 of file driver.cxx.

Referenced by main(), and Phase_Init().

Definition at line 299 of file driver.cxx.

int s_size = 16

Definition at line 321 of file driver.cxx.

Referenced by simp_cvtl().

Definition at line 301 of file driver.cxx.

Referenced by Postprocess_PU(), and Preprocess_PU().

BOOL Saved_run_w2c = FALSE [static]

Definition at line 302 of file driver.cxx.

Referenced by Postprocess_PU(), and Preprocess_PU().

BOOL Saved_run_w2f = FALSE [static]

Definition at line 303 of file driver.cxx.

Referenced by Postprocess_PU(), and Preprocess_PU().

Definition at line 304 of file driver.cxx.

Referenced by Postprocess_PU(), and Preprocess_PU().

Definition at line 77 of file cleanup.cxx.

Referenced by Cleanup_Files(), and load_components().

Definition at line 76 of file cleanup.cxx.

Referenced by Cleanup_Files(), and load_components().

BOOL wopt_loaded = FALSE [static]

Definition at line 311 of file driver.cxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines